- 产品
- 产品解决方案
- 行业解决方案
- 案例
- 数据资产入表
- 赋能中心
- 伙伴
- 关于
时间:2019-05-14来源:知乎浏览数:2472次
数据实时处理的概念和意义
数据实时处理能做什么
数据实时处理架构简介
数据实时处理代码演示
数据实时处理的概念和意义
什么是数据实时处理呢?我个人对数据实时处理的理解为:
数据实时处理能做什么
数据的实时计算
何为数据的实时计算?我们从数据源端拿到数据,可能不尽如人意,我们想对得到的数据进行 ETL 操作、或者进行关联等等,那么我们就会用到数据的实时计算。目前主流的实时计算框架有 spark,storm,flink 等。
数据的实时落地
数据的实时落地,意思是将我们的源数据或者计算好的数据进行实时的存储。在大数据领域,推荐使用 HDFS,ES 等进行存储。
数据的实时展示与分析
我们拿到了数据,要会用数据的价值。数据的价值体现在数据中相互关联关系,或与历史关联,或能预测未来。我们实时得到数据,不仅能够利用前端框架进行实时展示,还可以对其中的一些数据进行算法训练,预测未来走势等。
数据实时处理架构简介
接下来是我们介绍的重点,先放一张数据流程图:
数据采集端,选用目前采集数据的主流控件 flume。
数据缓冲缓存,选用分布式消息队列 kafka。
数据实时计算,选用 spark 计算引擎。
数据存储位置,选用分布式数据存储 ES。
其他,指从 ES 中拿到数据后进行可视化展示,数据分析等。
下面将分别简单的介绍下各个组件:
event
flume 的数据流由事件 (event) 贯穿始终。event 是 flume 的基本数据单位,它携带日志数据并且携带数据的头信息,这些 event 由 agent 外部的 source 生成,当 source 捕获事件后会进行特定的格式化,然后 source 会把事件推入 channel 中。可以把 channel 看作是一个缓冲区,它将保存事件直到 sink 处理完该事件。sink 负责持久化日志或者把事件推向另一个 source。
agent
flume 的核心是 agent。agent 是一个 java 进程,运行在日志收集端,通过 agent 接收日志,然后暂存起来,再发送到目的地。 每台机器运行一个 agent。 agent 里面可以包含多个 source,channel,sink。
source
source 是数据的收集端,负责将数据捕获后进行特殊的格式化,将数据封装到 event 里,然后将事件推入 channel 中。flume 提供了很多内置的 source,支持 avro,log4j,syslog 等等。如果内置的 source 无法满足环境的需求,flume 还支持自定义 source。
channel
channel 是连接 source 和 sink 的组件,大家可以将它看做一个数据的缓冲区(数据队列),它可以将事件暂存到内存中也可以持久化到本地磁盘上, 直到 sink 处理完该事件。两个较为常用的 channel,MemoryChannel 和 FileChannel。
sink
sink 从 channel 中取出事件,然后将数据发到别处,可以向文件系统、数据库、hadoop、kafka,也可以是其他 agent 的 source。
flume 的可靠性与可恢复性
flume 的可靠性:当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume 提供了可靠性保障,收到数据首先写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。
flume 的可恢复性:可恢复性是靠 channel。
口述抽象,上两张官网贴图:
分区图
spark组成
spark core 用于离线计算
spark sql 用于交互式查询
spark streaming,structed streaming 用于实时流式计算
spark MLlib 用于机器学习
spark GraphX 用于图计算
spark 特点
速度快:spar k基于内存进行计算(当然也有部分计算基于磁盘,比如 shuffle)。
容易上手开发:spark 的基于 rdd 的计算模型,比 hadoop 的基于 map-reduce 的计算模型要更加易于理解,更加易于上手开发,实现各种复杂功能。
通用性:spark 提供的技术组件,可以一站式地完成大数据领域的离线批处理、交互式查询、流式计算、机器学习、图计算等常见的任务。
与其他技术的完美集成:例如 hadoop,hdfs、hive、hbase 负责存储,yarn 负责资源调度,spark 负责大数据计算。
极高的活跃度:spark 目前是 apache 的顶级项目,全世界有大量的优秀工程师是 spark 的 committer,并且世界上很多顶级的 IT 公司都在大规模地使用 spark。
贴个spark架构图
配置好组件之间整合的配置文件
搭建好集群后,根据集群组件直接的整合关系,配置好配置文件。其中主要的配置为 flume 的配置,如下图:
开启各个集群进程
开启 zookeeper 服务。其中 QuorumPeerMain 为 zookeeper 进程。
开启 kafka 服务。
开启 es 服务。
开启 flume 服务。其中 Application 为 flume 进程。
下一篇:大数据分析流程...