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

2.4.2 软件环境

1.技术选型

在数据采集运输方面,本项目主要完成3个方面的需求:将服务器中的日志数据实时采集到大数据存储系统中,以防数据丢失及数据堵塞;将业务数据库中的数据采集到数据仓库中;同时将需求计算结果导出到关系型数据库方便进行展示。为此我们选用了Flume、Kafka、DataX、Maxwell。

Flume是一个高可用、高可靠、分布式的海量数据收集系统,从多种源数据系统采集、聚集和移动大量的数据并集中存储。Flume提供了丰富多样的组件供用户使用,不同的组件可以自由组合,组合方式基于用户设置的配置文件,非常灵活,可以满足各种需求。

Kafka是一个提供容错存储、高实时性的分布式消息队列平台。我们可以将它用在应用和处理系统间高实时性和高可靠性的流式数据存储中,也可以实时地为流式应用传送和反馈流式数据。

DataX是一个基于select查询的离线、批量同步工作,通过配置可以实现多种数据源与多种目的存储介质之间的数据传输。离线、批量的数据同步工具可以获取业务数据库的所有数据,但是无法获取所有的变动数据。

变动数据的同步和抓取工具我们选用的是Maxwell。Maxwell通过监控MySQL数据库的binlog日志文件,可以实时地抓取所有的数据变更操作。Maxwell在采集变动数据后可以直接发送至对应的Kafka的主题中,再通过Flume将数据落盘至HDFS文件系统中。

在数据存储方面,本项目中主要完成对海量原始数据及转化后各层数据仓库中的数据存储和对最终结果数据的存储。对海量原始数据的存储,我们选用了HDFS,HDFS是Hadoop的分布式文件存储系统,适合应用于大规模的数据集上,将大规模的数据集以分布式的方式存储于集群中的各台节点服务器上,提高文件存储的可靠性。由于数据体量比较小,且为了方便访问,对最终结果数据的存储我们选用MySQL。

在数据计算方面,我们选用了Hive on Spark作为计算组件。Hive on Spark是由Cloudera发起,由Intel、MapR等公司共同参与的开源项目,其目的是把Spark作为Hive的一个计算引擎,将Hive的查询作为Spark的任务提交到Spark的集群上进行计算。通过该项目,可以提高Hive查询的性能,同时为已经部署了Hive或者Spark的用户提供了更加灵活的选择,从而进一步提高Hive和Spark的使用效率。

在数据的可视化方面,我们提供了两种解决方案:一种是使用起来方便快捷的可视化工具Superset;另一种是ECharts可视化,配置更加灵活但是需要用户掌握一定的Spring Boot知识。

我们选用了DolphinScheduler作为任务流的定时调度系统。Apache DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台,致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。

将本项目的技术选型总结如下。

·数据采集传输:Flume、Kafka、DataX、Maxwell。

·数据存储:MySQL、HDFS。

·数据计算:Hive、Spark。

·可视化:Superset、ECharts。

·任务调度:DolphinScheduler。

2.框架选型

框架版本的选型要求满足数据仓库平台的几大核心需求:子功能不设局限、国内外资料及社区尽量丰富、组件服务的成熟度和流行度较高,待选择版本如下。

·Apache:运维过程烦琐,组件间的兼容性需要自己调研(本次选用)。

·CDH:国内使用较多,不开源,不用担心组件的兼容问题。

·HDP:开源,但没有CDH稳定,使用较少。

·云服务:各大云服务提供商为企业提供了一整套大数据解决方案,如阿里云EMR、腾讯云EMR、华为云EMR等。

笔者经过考量决定选择Apache原生版本大数据框架,一方面可以自由定制所需要的功能组件;另一方面CDH和HDP版本框架体量较大,对服务器配置要求相对较高。本项目中用到的组件较少,Apache原生版本即可满足需要。

笔者经过对版本兼容性的调研,确定的版本选型如表2-2所示。本数据仓库项目采用了目前大数据生态体系中流行的稳定版本,并对框架版本的兼容性进行了充分调研,将安装部署过程中可能产生的问题都进行了尽可能明确的说明,读者可以放心使用。

表2-2 版本选型 7ehxPwTlHwhh+ORNp6S6UvgQnfI71hJRSTF0jeA2I8AkgxBcqTpAJQ3Al3HgzdiZ

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

打开