-系列目录-
大数据(三)大数据技术栈发展史前两章,我们分析了大数据相关的概念和发展史,本节我们就讲一讲具体的大数据领域的常见技术栈发展史。对主流技术栈有一个初步的认知。
一、总览
大数据技术栈非常多估计大大小小多达上百种。但发展史、技术体系仍有迹可循。我们从数据采集、清洗、应用3大步骤来看,在每个步骤内部按照时序标识主流技术栈时间点。以此期望能给大家一个初步的映像。三大步骤如下:
- 数据采集:从数据源进行数据同步,大致分为:主动查询DB数据批量(离线)同步、基于DB log数据变更(实时)同步2大类。
- 数据清洗:标准的ETL数据清洗,大致分为:离线计算(批处理)、实时计算(流处理)2大类。
- 数据应用:OLAP在线数据分析、报表、数据大屏、大数据查询服务API。
分步骤整体技术栈如下图所示:
二、技术栈
2.1 数据集采
如上图,数据采集可以归纳为两大类:离线查询同步、实时变更同步。如下图所示:
2.1.1 离线同步
离线同步常见技术栈有:Sqoop、Flume、DataX。
2.1.1.1 Sqoop-2009
2.1.1.2 Flume-2009
1)介绍
Apache Flume 是一个分布式、高可靠、高可用的用来收集、聚合、转移不同来源的大量日志数据到中央数据仓库的工具。也是Apache顶级项目。
2)同步原理
![](https://img-blog.csdnimg.cn/img_convert/b468a36d922dfced6dc0a9b52b5b75b0.png)
flume采集流模式进行数据实时采集。适用于日志文件实时采集,特定文件传输场景使用。
2.1.1.3 DataX-2019
1)介绍
DataX是阿里开源的,异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
2)同步原理
![](https://img-blog.csdnimg.cn/img_convert/bf41cf5170d4cf9e3ae467874d2a62be.jpeg)
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
数据库日志同步。适用于在异构数据库/文件系统之间高速交换数据,是主流的离线同步工具,推荐使用。
2.1.2 实时同步
2.1.2.1 Canal-2014
1)介绍
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。2014年,由Alibaba开源。
github:https://github.com/alibaba/canal,阿里巴巴 MySQL binlog 增量订阅&消费组件。
2)同步原理
数据库增量日志解析。仅适用于Mysql数据同步,适用场景局限性过大,无法作为通用技术栈。
2.1.2.2 Debezium-2015
1)介绍
RedHat(红帽公司) 开源的D