DataSimba系列之流式计算
你是否有过这样的念头:如果能立刻马上看到我想要的数据,我就能更好地决策?
市场变化越来越快,企业对于数据及时性的需求,也越来越大,另一方面,当下数据容量呈几何倍暴增,数据的价值在其产生之后,也将随着时间的流逝,逐渐降低。 因此,我们最好在事件发生之后,迅速对其进行有效处理,实时,快速地处理新产生的数据,帮助企业快速地进行异常管理和有效决策,而不是待数据存储在一起之后,再进行批量处理。
一:sparkStreaming+hbase整合应用,助力企业实时运营监控
对于不作更新的数据,可以通过datax将数据从业务系统数据库同步到hive中,进行离线计算;但对于有大量更新的数据,就不能采用以上的做法了,因为hive不能很好的支持实时更新操作。我们的做法是使用sparkStreaming+HBase做数据存储与去重,然后以封装的HBase工具类为支撑,进行数据的实时监控。
实现原理:
Apache Spark是专为大规模数据处理而设计的分布式内存计算引擎,特点是灵活快速。 HBase是一个分布式的、面向列的开源数据库,适用于海量数据的存储与实时写入。HBase工具类是奇点云大数据团队针对Spark与HBase自研的高性能HBase读写工具,它是在HBase官方API基础上依据奇点云特有的需求场景进行了二次开发,内部提供了诸多与Spark紧密结合的API,它的诞生极大地提高了Spark对Hbase的读写速度。经测试,比Spark原生的HBase API性能提高3倍以上,平均开发效率提升10倍以上。正因为HBase工具类的诞生,才促进了Spark与HBase在奇点云的大规模应用。
整体架构:
通过mysql的Canal(canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费)将数据实时投递到kafka中,交由Spark Streaming分批实时消费处理,经过数据清洗、处理与转换,使用HBase工具类将数据逐批写入到HBase中,完成数据的实时同步与更新。
应用场景:
Spark与HBase广泛应用于实时数据写入、统计抽取、历史数据归档、海量数据的实时判断等方面。
·实时数据写入
Spark作为分布式实时计算的佼佼者,擅长海量数据的实时计算。我们通过Spark Streaming将消费到的含有大量更新操作的数据进行清洗、分析与计算,最终以事先设计好的规则实时写入到HBase中,HBase会自动维护重复的数据(rowKey设计原则)。
·海量数据实时判断
在某些场景下,我们需要对历史(一个月以前)的数据进行实时的判断、对比与更新。由于数据量大,且实时性较高,redis或传统的关系型数据库并不能很好的满足要求。对于这种需求,我们对Spark Streaming程序架构进行了梳理,并对HBase相关的API进行了二次开发,最终满足了以上的需求。
某大型商业综合体客户案例
客户背景:
客户为国内某核心商业综合体公司,主营城市核心商业购物中心,对于大型商业购物中心而言,如何实时采集当前进出客流人数、行走动线及热力轨迹、实现数据拉通能力是大型商业购物中心进行业务数字化运营,用户洞察与体验优化的基础。
奇点云的解决方案帮助客户实现了:
1: 实时数据从无到有 (原来并不具备实时数据采集能力)
2: t+0实时数据采集 (原来仅具有少量离线数据的T+1以上的事后追溯分析能力)
3: 实时客流监控 (今日客流人数,当前在场人数,今日到场次数,平均逗留时长,店铺客流热度,顾客性别与年龄占比,商场黑名单实时预警,客流热力分析,客流动线分析……)
4: 经过实时处理,获得有价值的信息帮助商场快速的做出决策能力 (从滞后的经验型追溯分析,到基于现场监控数据的实时运营决策)
二:sparkStreaming+kudu+impala整合应用,助力企业实时多维分析
在Kudu出现之前,Hadoop生态环境中的储存主要依赖HDFS和HBase, 追求高吞吐批处理的用例中使用HDFS,追求低延时随机读取用例下用HBase,而Kudu正好能兼顾这两者:
•Kudu的设计使它与众不同:
• 快速处理OLAP(Online Analytical Processing)任务;
• 集成MapReduce、Spark和其他Hadoop环境组件;
• 与Impala高度集成,使得这成为一种高效访问交互HDFS的方法;
• 在执行同时连续随机访问时表现优异;
• 高可用性,tablet server和master利用Raft Consensus算法保证节点的可用。
•常见的应用场景:
• 刚刚到达的数据就马上要被终端用户使用访问到;
• 同时支持在大量历史数据中做访问查询和某些特定实体中需要非常快响应的颗粒查询;
• 基于历史数据使用预测模型来做实时的决定和刷新;
• 要求几乎实时的流输入处理。
整体架构:
将数据实时投递到kafka中,交由Spark Streaming分批实时消费处理,经过数据清洗、处理与转换,使用kudu工具类将数据逐批写入到kudu中,完成数据的实时同步与更新。
某服饰客户案例
客户背景:
客户为国内某大型服饰品牌,以直营为主,数据情况较好,每天的业务订单量及多张维表数据量不断攀升, 原来的oracle数据库已支持不起庞大业务数据的多条件实时查询,在奇点云介入服务后,企业迫不及待提出了多维度即席查询的需求。
奇点云的解决方案帮助客户实现了:
1: 实时数据从oracle切换到kudu ;
2: t+0实时数据采集 (从原来的T+1的离线计算到现在的实时计算);
3: 实时订单多维分析 (从原来的多张表关联及30个条件多维度查询,查询不出来到现在的1分钟内出结果);
4: 经过实时分析 (多维度即席查询),获得有价值的信息帮助领导层快速的做出决策力。
流计算秉承一个基本理念,当事件出现时就应该立即进行处理,而不是缓存起来进行批量处理。不同于现有的离线计算, 流计算全链路整体上更加强调数据的实时性 ,包括数据实时采集、数据实时计算、数据实时集成。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spark Streaming的优化之路—从Receiver到Direct模式
作者:个推数据研发工程师 学长 1 业务背景 随着大数据的快速发展,业务场景越来越复杂,离线式的批处理框架MapReduce已经不能满足业务,大量的场景需要实时的数据处理结果来进行分析、决策。Spark Streaming是一种分布式的大数据实时计算框架,他提供了动态的,高吞吐量的,可容错的流式数据处理,不仅可以实现用户行为分析,还能在金融、舆情分析、网络监控等方面发挥作用。个推开发者服务——消息推送“应景推送”正是应用了Spark Streaming技术,基于大数据分析人群属性,同时利用LBS地理围栏技术,实时触发精准消息推送,实现用户的精细化运营。此外,个推在应用Spark Streaming做实时处理kafka数据时,采用Direct模式代替Receiver模式的手段,实现了资源优化和程序稳定性提升。 本文将从Spark Streaming获取kafka数据的两种模式入手,结合个推实践,带你解读Receiver和Direct模式的原理和特点,以及从Receiver模式到Direct模式的优化对比。 2 两种模式的原理和区别 Receiver模式 1. Receiver模...
- 下一篇
BR-MLP基于spark+Hadoop分布式数据挖掘解决方案功能剖析
分布式数据挖掘为何受到如此热议呢?在互联网发展中发挥着怎么样的作用呢? 大数据挖掘迅速地接纳了来源于其它科技领域的思想观念,涉及最优化方法、进化计算方法、信息论、数字信号处理、数据可视化和文本检索。大数据挖掘的任务包括是关联分析、聚类分析、分类管理、预测分析、时序模式和偏差具体分析。 BR-MLP(波若数据挖掘平台)是基于大数据BR-ODP的分布式数据挖掘平台,基于Hadoop和Spark技术,支持海量数据挖掘。提供数据源、数据预处理、特征工程、统计分析、机器学习……组件。 1.数据源提供数据集载入方案和方案中数据保存到平台中的功能, 2.数据预处理对数据进行清洗、类型转化、值填充等,使数据内容和结构更规整,以便后续组件处理,其包含:去除重复、随机采样、分层采样…… 3特征工程对预处理好的规整数据进行更深入的处理,主要有尺度变换、异常平滑、特征抽取和降维等。 特征离散、特征抽取……是其显著特征 4统计分析对数据统计分析,了解数据的整体或详情、分布、相关性和适配度检验等,使我们在做数据预处理和特征工程时,心中有数,知道哪些因素对我们最终的结果影响比较大等。 5分类与回归构建分类或回归模型...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- Red5直播服务器,属于Java语言的直播服务器