第3章 系统需求分析和总体设计
系统需求分析
为满足数据处理系统的前端友好展示与交互操作、后端数据分析集群高可用、系统整体稳定性。在此采用B/S+集群架构[],或说是web+集群架构,即在数据处理平台上搭建集群进行数据采集、分析、存储,而后将最终数据ETL结果直接写入相关消息中间件。而在web系统中Server端可以从消息中间件中读取结果数据反馈至客户端,在客户端采用图形化界面友好展示数据处理结果并提供简单的数据交互式操作。
该系统总体上划分为两个模块同步迭代实现集成测试,首先是集群数据处理平台的环境搭建与相关数据处理业务设计与代码实现、而后是web站点的搭建及其与集群数据的交互。本系统关键在于集群数据处理平台的设计与实现,同时web站点与集群之间的数据及相关信息交互问题也需着重考虑。在集群运算平台中需首先实现至少三台节点的环境搭建,其中包括基本linux(centOS6.7)系统节点安装及其相关环境配置,如网络配置、免密登录、yum源搭建等;基本支撑软件平台的安装及其配置,如hadoop、zookeeper、spark等集群搭建配置与HA机制实现。在上述环境基础上运用java+scala混合编程实现相关数据处理的具体业务逻辑,其中包括实验环境下的原始数据模拟生成与采集,spark离线数据批处理,sparkStreaming实时流数据处理等,本系统侧重点在于sparkStreaming流数据处理。最后是web站点的搭建,为避免传统SSM/SSH体系下繁杂的文件配置进而实现web站点的敏捷开发,在此采用springboot整合各相关工具进行web开发,如kafka、mybatis、echarts等。其中为实现web站点的稳定性与可拓展性,将服务端挂在linux集群节点上;此外web站点可通过图形化界面提供一定程度上的交互式操作,即客户端用户可以基于web界面进行简单的数据操作。
系统总体设计
经过理论学习与科学实践,将该系统划分为两个模块:集群数据处理平台设计与实现、web站点搭建。集群数据处理平台主要对原始数据进行一系列ETL操作,根据用户需求对数据做进一步的聚合统计操作,并将处理结果写入消息中间件以便web平台获取。Web站点负责展示集群数据处理结果,基于数据图形化工具提供用户简单的数据交互操作。
集群数据处理平台
集群数据处理平台主要模块:
- 集群环境搭建:其中包括基本的CentOS操作系统集群搭建,Hadoop,Spark,Zookeeper集群等各个支撑软件的安装配置。
- 流数据生成与获取:采用消息中间件如Kafka在各功能模块间推送或采集数据。
- 实时流数据处理:主要为sparkStreaming数据实时流处理,包括数据集成、转换、规约等一系列ETL操作[]。
Web站点主要模块:
- 数据展示,借助图形化工具如Echarts展示数据。
- 数据获取,从消息中间件接收或从数据库读取数据,是数据在Web与集群间流通的关键所在。
- 用户交互,借助数据图形化工具,用户可简单的操作界面数据[]。
系统功能模块图
根据以上的分析和设计,本大数据处理平台的系统功能模块图如下图3-1所示:
图3-1 系统功能模块图