现如今,我们来到了数据时代,数据信息化与我们的生活与工作息息相关。此篇文章简述利用大数据框架,实时处理数据的流程与相关框架的介绍,主要包括:
- 数据实时处理的概念和意义
- 数据实时处理能做什么
- 数据实时处理架构简介
- 数据实时处理代码演示
数据实时处理的概念和意义
什么是数据实时处理呢?我个人对数据实时处理的理解为:数据从生成->实时采集->实时缓存存储->(准)实时计算->实时落地->实时展示->实时分析。这一个流程线下来,处理数据的速度在秒级甚至毫秒级。
数据实时处理有什么意义呢?我们得到数据可以进行数据分析,利用数据统计方法,从错综复杂的数据关系中梳理出事物的联系,比如发展趋势、影响因素、因果关系等。甚至建立一些BI,对一些数据的有用信息进行可视化呈现,并形成数据故事。
数据实时处理能做什么
数据的实时计算
何为数据的实时计算?我们从数据源端拿到数据,可能不尽如人意,我们想对得到的数据进行 ETL 操作、或者进行关联等等,那么我们就会用到数据的实时计算。目前主流的实时计算框架有 spark,storm,flink 等。
数据的实时落地
数据的实时落地,意思是将我们的源数据或者计算好的数据进行实时的存储。在大数据领域,推荐使用 HDFS,ES 等进行存储。
数据的实时展示与分析
我们拿到了数据,要会用数据的价值。数据的价值体现在数据中相互关联关系,或与历史关联,或能预测未来。我们实时得到数据,不仅能够利用前端框架进行实时展示,还可以对其中的一些数据进行算法训练,预测未来走势等。
example:
淘宝双 11 大屏,每年的双 11 是淘宝粉丝疯狂的日子。马云会在双 11 的当天在阿里总部竖起一面大的电子屏幕,展示淘宝这一天的成绩。例如成交额,访问人数,订单量,下单量,成交量等等。这个电子大屏的背后,就是用到的我们所说的数据的实时处理。首先,阿里的服务器遍布全国各地,这些服务器收集PC端、手机端等日志,上报到服务器,在服务上部署数据采集工具。接下来,由于数据量庞大,需要做数据的缓存缓冲处理。下一步,对原始日志进行实时的计算,比如筛选出上面所述的各个指标。最后,通过接口或者其他形式,进行前端屏幕的实时展示。
数据实时处理架构简介
接下来是我们介绍的重点,先放一张数据流程图:
- 数据采集端,选用目前采集数据的主流控件 flume。
- 数据缓冲缓存,选用分布式消息队列 kafka。
- 数据实时计算,选用 spark 计算引擎。
- 数据存储位置,选用分布式数据存储 ES。
- 其他,指从 ES 中拿到数据后进行可视化展示,数据分析等。
下面将分别简单的介绍下各个组件:
flume
flume 是一个分布