购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 项目数据流设计

为了实现项目需求,我们需要搭建大数据分析系统,对海量数据进行分析与计算。项目需求涉及离线计算和实时计算,由于Spark是一个基于内存计算的快速通用计算系统,既拥有离线计算组件又拥有实时计算组件,因此以Spark为核心进行数据分析会更加容易,且易于维护。整个系统数据流架构的设计如图1-2所示。

从图1-2可以看出,本系统整体上共分为三个模块:数据采集模块、数据分析模块、数据可视化模块。数据分析模块又分为离线分析模块和实时分析模块,这两个模块在本书中都会进行讲解,并且重点讲解实时分析模块。因此,本书的讲解思路及顺序如下:

(1)数据采集模块

(2)数据离线分析模块

(3)数据实时分析模块

(4)数据可视化模块

图1-2 日志分析系统数据流架构设计

读者可按照上述顺序并参考本书的章节逐步进行项目的开发,直到完成并成功运行整个项目。

图1-2所示的日志数据流转步骤如下:

01 在产生日志的每台服务器上安装Flume进行日志采集,然后把各自采集到的日志数据发送给同一个Flume服务器进行日志的合并。

02 将合并后的日志数据以副本的方式分成两路(两路数据相同):一路进行实时计算,另一路进行离线计算。将需要实时计算的数据发送到实时消息系统Kafka进行中转,将需要离线计算的数据存储到HBase分布式数据库中。

03 使用Spark Streaming作为Kafka的消费者,按批次从Kafka中获取数据进行实时计算,并将计算结果存储于MySQL关系数据库中。

04 使用Spark SQL(或Hive)查询HBase中的日志数据进行离线计算,并将计算结果存储于MySQL关系数据库中。通常的做法是使用两个关系数据库分别存储实时和离线的计算结果。

05 使用WebSocket实时获取MySQL中的数据,然后通过可视化组件(ECharts等)进行实时展示。

06 当用户在前端页面单击以获取离线计算结果时,使用Java Web获取MySQL中的结果数据,然后通过可视化组件(ECharts等)进行展示。 0setUoZL/n+ouatASKnATPlmQ+8LfigTy4kqzpTmv6d3A1uOnTQQI25kSGFNhFxX

点击中间区域
呼出菜单
上一章
目录
下一章
×