本书以Hive为开发平台,主要介绍了如何使用HiveQL来查询和分析存储在Hadoop分布式文件系统上的大数据集合,具体内容包括Hive入门、Hive数据库及表操作、Hive元数据、Hive高级操作、Hive函数与Streaming、Hive视图与索引、Hive调优、Hive与HBase集成、数据迁移框架Sqoop等。本书介绍的每个任务都运用了大量案例,紧密结合实际应用,融入了含金量十足的开发经验。在此基础上,本书通过丰富的练习和操作实践,帮助读者巩固所学的内容。本书配以多元的学习资源和支持服务,包括视频、案例素材、学习社区等,为读者提供全方位的学习体验。
本书适合作为计算机、大数据等相关专业的教材,也适合具有一定Linux或Java开发基础且想从事大数据开发的人员阅读学习,还可以作为大数据分析与运维人员的参考用书。
1. 贯穿项目与实战项目相结合
(1)贯穿项目:雇员信息、零售数据分析贯穿每章,及时巩固Hive各知识点。
(2)实战项目:电商消费数据分析综合实训,提升Hive企业级应用开发能力。
2. 教学资源丰富多样
(1)本书配套素材及示例代码。
(2)每章课后作业及答案。
(3)重难点内容讲解视频(扫码直接观看)。
3. 学习效果随时可测
(1)每章提供“本章目标”及“重难点”,助力读者确定学习要点。
(2)课后作业辅助读者巩固阶段性学习内容。
(3)课工场题库助力在线测试。
肖睿,课工场创始人,北京大学教育学博士,北京大学软件学院特约讲师,北京大学学习科学实验室特约顾问。作为北大青鸟 Aptech 的联合创始人,历任学术总监、研究院院长、公司副总裁等核心岗位,拥有20多年的IT职业教育产品管理和企业管理经验。于2015年创办课工场,兼任总经理,旨在为大学生提供更可靠的 IT 就业教育及服务。
北京课工场教育科技有限公司是专注互联网教育的生态平台,汇聚了中国和北美数百位来自知名互联网企业的行业大咖,依托Transform只能教育生态平台,打造智慧校园、企业大学、行业培训的教育场景,提供一站式教育解决方案。
第 1章 Hive入门 1
任务1 了解Hive基础 2
1.1.1 认识Hive 2
1.1.2 Hive架构设计 5
1.1.3 Hive工作流程 6
1.1.4 Hive适用场景 7
任务2 掌握Hive数据存储模型 8
1.2.1 Hive存储格式 8
1.2.2 Hive数据单元 10
1.2.3 Hive存储模型 10
任务3 安装配置Hive环境 11
1.3.1 Hive的发展历程 12
1.3.2 搭建Hive CDH环境 13
1.3.3 Hive初体验 15
1.3.4 Hive开发环境 18
1.3.5 技能实训 21
本章小结 21
本章作业 21
第 2章 Hive数据库及表操作 23
任务1 熟悉Hive数据类型 24
2.1.1 基本数据类型 24
2.1.2 复杂数据类型 26
任务2 使用Hive管理雇员信息 28
2.2.1 Hive DDL操作 29
2.2.2 Hive DML操作 33
2.2.3 Hive Shell 38
2.2.4 技能实训 40
任务3 使用Hive Java API操作雇员表 41
2.3.1 开发环境搭建 41
2.3.2 JDBC操作Hive数据库 42
2.3.3 技能实训 47
本章小结 47
本章作业 48
第3章 Hive元数据 49
任务1 访问雇员数据的元数据信息 50
3.1.1 Hive元数据的概念及存储方式 50
3.1.2 雇员数据元数据信息查询 53
3.1.3 技能实训 60
任务2 使用Hive Java API读取雇员表元数据 60
3.2.1 hive-metastore组件 60
3.2.2 使用HiveMetaStoreClient访问元数据 62
3.2.3 技能实训 68
任务3 使用HCatalog管理雇员数据的元数据 69
3.3.1 HCatalog介绍 69
3.3.2 HCatalog应用 70
本章小结 75
本章作业 75
第4章 Hive高级操作 77
任务1 关联查询零售商店订单明细 78
4.1.1 SELECT语句 78
4.1.2 关联查询 83
4.1.3 联合查询 87
4.1.4 技能实训 87
任务2 使用分组排序实现商品销售排行 88
4.2.1 排序 88
4.2.2 分组聚合 91
4.2.3 技能实训 94
任务3 使用窗口函数实现零售数据统计 94
4.3.1 窗口函数 94
4.3.2 窗口的定义 99
4.3.3 技能实训 102
本章小结 102
本章作业 102
第5章 Hive函数与Streaming 103
任务1 应用内置函数 104
5.1.1 函数概述 104
5.1.2 内置函数详解 105
5.1.3 技能实训 112
任务2 使用Java编写Hive自定义函数 112
5.2.1 自定义函数概述 113
5.2.2 UDF 114
5.2.3 UDAF 117
5.2.4 UDTF 120
5.2.5 技能实训 121
任务3 使用Streaming实现数据处理 121
5.3.1 Streaming概念 122
5.3.2 Streaming应用 122
5.3.3 技能实训 125
本章小结 125
本章作业 125
第6章 Hive视图与索引 127
任务1 创建并管理零售商店的顾客表和订单表视图 128
6.1.1 视图的基本概念及使用场景 128
6.1.2 视图的基本操作 130
6.1.3 Materialized Views和Lateral View 135
6.1.4 技能实训 138
任务2 建立零售商店顾客表索引 139
6.2.1 Hive索引的基本概念及使用场景 139
6.2.2 为零售商店顾客表建立索引 141
6.2.3 与索引相关的元数据表 144
6.2.4 技能实训 145
本章小结 146
本章作业 146
第7章 Hive调优 147
任务1 熟悉Hive性能调优策略 148
7.1.1 Hive性能调优使用工具 148
7.1.2 优化Map Task和Reduce Task个数 150
7.1.3 Hive Job优化 151
7.1.4 Hive Query优化 153
7.1.5 设置压缩 155
7.1.6 技能实训 157
任务2 解决Hive数据倾斜问题 157
7.2.1 数据倾斜问题 158
7.2.2 数据倾斜问题解决方案 158
任务3 Hive集成Tez 161
7.3.1 Tez简介 161
7.3.2 Tez安装配置 162
7.3.3 Hive与Tez集成 164
7.3.4 技能实训 166
本章小结 166
本章作业 166
第8章 Hive与HBase集成 169
任务1 理解Hive与HBase集成的场景及原理 170
8.1.1 Hive与HBase集成的应用场景 170
8.1.2 Hive与HBase集成原理 171
任务2 实现Hive与HBase集成 174
8.2.1 Hive与HBase集成配置 174
8.2.2 Hive与HBase集成功能测试 175
8.2.3 将零售商店顾客购买统计信息存入HBase表 182
8.2.4 技能实训 183
任务3 使用Phoenix操作HBase数据库 184
8.3.1 Phoenix简介 184
8.3.2 搭建Phoenix CDH环境 186
8.3.3 技能实训 189
本章小结 190
本章作业 190
第9章 数据迁移框架Sqoop 191
任务1 使用Sqoop完成Hadoop与MySQL间的数据迁移 192
9.1.1 Sqoop简介 192
9.1.2 导入MySQL数据到HDFS 196
9.1.3 导入MySQL数据到Hive 205
9.1.4 导入MySQL数据到HBase 206
9.1.5 导出HDFS数据到MySQL 207
9.1.6 技能实训 211
任务2 使用Sqoop Job完成Hive与MySQL间的数据迁移 211
9.2.1 Sqoop Job 212
9.2.2 技能实训 213
本章小结 213
本章作业 213
第 10章 项目实训:电子商务消费行为分析 215
10.1 项目准备 216
10.2 难点分析 219
10.3 项目实现思路 220
本章小结 242
本章作业 242