大数据技术的落地应用高度依赖高效的数据集成能力。Sqoop、DataX、Flume、Flink CDC等工具作为连接关系型数据库与分布式存储系统的桥梁,是大数据开发工程师的核心技能栈。本书以场景化实训为导向,系统介绍Sqoop、DataX、Flume、Flink CDC的原理与应用方法,帮助读者掌握从数据采集、传输到存储的全流程技术。通过“图书销售数据集成”“零售业务数据集成”等项目,演示单工具在离线同步、实时捕获等场景中的应用;通过“银行金融租赁审批数据集成”项目,串联多工具实现离线全量数据与实时增量数据的混合处理。 本书适合作为高等学校大数据相关专业的实训教材,也可为数据工程从业者提供实践参考。
梁楠楠,副教授,宿州学院信息工程学院党政办公室主任,安徽省计算机学会理事,研究方向为大数据与人工智能,主持多项省部级科研项目,发表学术论文10余篇,出版教材与专著3部。
第1篇 工具基础篇
第1章 图书销售数据集成案例 1
1.1 原始业务数据准备 1
1.1.1 创建MySQL数据库及表 2
1.1.2 执行SQL文件导入数据 2
1.2 MySQL数据同步至HDFS 3
1.2.1 Sqoop全量同步数据 3
1.2.2 Sqoop使用Where过滤参数 5
1.2.3 Sqoop使用SQL语句 7
1.3 MySQL数据同步至Hive 9
1.3.1 Sqoop全量同步数据至Hive表 9
1.3.2 Sqoop实现增量数据导入 10
1.3.3 Sqoop同步数据至Hive分区表 12
1.4 Hive数据导出至MySQL 14
1.5 编写Sqoop脚本实现数据同步 15
1.5.1 Sqoop脚本:MySQL导入数据至Hive 15
1.5.2 Sqoop脚本:Hive导出数据至MySQL 18
第2章 零售业务数据集成方案 20
2.1 业务数据准备 20
2.1.1 创建MySQL数据库及表 21
2.1.2 加载业务数据 22
2.2 实现MySQL到HDFS的数据抽取 23
2.2.1 编写全量同步JSON脚本 23
2.2.2 执行脚本并校验数据 28
2.2.3 使用MySQLReader QuerySQLMode抽取数据 31
2.2.4 通过DataX传参实现数据抽取 35
2.3 实现MySQL到Hive的数据抽取 38
2.3.1 编写全量同步至Hive的JSON脚本 38
2.3.2 实现全量数据同步至Hive分区表 42
2.3.3 实现增量数据同步至Hive分区表 46
2.4 DataX实现Hive到RDBMS的数据导出 48
2.4.1 编写全量导出至MySQL的JSON脚本 48
2.4.2 执行脚本并校验数据 49
第3章 用户行为日志数据集成平台 51
3.1 数据准备 51
3.2 Flume实战 53
3.2.1 Exec Source 53
3.2.2 Spooldir Source 58
3.2.3 Taildir Source 62
3.2.4 Kafka Sink 66
第4章 Flink CDC的实时数据集成 72
4.1 模拟数据 72
4.1.1 创建MySQL数据库及表 73
4.1.2 编写Python代码模拟数据 76
4.2 数据集成实现 82
4.2.1 框架介绍 82
4.2.2 同步数据至HBase 83
4.2.3 同步数据至Kafka 92
第2篇 综合实训篇
第5章 银行金融租赁审批数据集成 97
5.1 技术框架介绍 97
5.2 项目背景与目标 98
5.3 技术架构设计 99
5.4 数据资源概述 101
5.5 数据获取 102
5.5.1 创建数据库及表 102
5.5.2 数据采集配置 103
附录A Hadoop部署与配置 126
附录B MySQL部署与配置 136
附录C Hive部署与配置 138
附录D ZooKeeper部署与配置 142
附录E Kafka部署与配置 146
附录F Hbase配置 150
附录G Sqoop部署与配置 153
附录H DataX部署与配置 155
附录I Flume部署与配置 156