本书以广电大数据案例为主线,系统介绍数据仓库Hive存储和初步处理方法的相关知识。本书条理清楚、重点突出,内容循序渐进、由浅入深。本书共8章,包括广电大数据用户画像需求分析、部署开发环境、广电用户数据存储、广电用户基本数据简单查询、广电用户账单与订单数据查询进阶、广电用户收视行为数据查询优化、广电用户数据清洗及数据导出,以及广电用户数据存储与处理的程序开发。本书大部分章包含实训和课后习题,通过练习和操作实践,帮助读者巩固所学的内容。
本书可以作为高等院校数据科学或大数据相关专业的教材,也可以作为大数据爱好者的自学用书。
将理论与实践结合。本书以知识点和广电大数据案例为主线,介绍在大数据技术中Hive的主要用法。
以任务为导向。本书从知识点到实操,再到具体的项目,让读者明白如何利用所学知识来解决问题,通过实训和课后习题帮助读者巩固所学知识,从而使读者真正理解并应用所学知识。
注重启发式教学。本书内容围绕利用Hive处理大数据的流程展开,不堆砌知识点,着重于思路的启发与解决方案的实施。通过对从任务需求到实现这一完整工作流程的体验,读者将真正理解并掌握Hive大数据存储和处理技术。
何煌,华中科技大学院软件工程硕士,“双师型”专业讲师,PMP项目管理师,大数据高级分析师。曾在企业从事多年系统研发工作,目前在广东创新科技职业学院信工学院担任软件教研室主任,负责软件和大数据专业教学研究工作。先后主编《计算机应用基础》、《Java程序设计教程》《创新创业基础教程》、《计算机应用基础实用教程》、《信息技术基础》等多本教材编撰工作。
第 1章 广电大数据用户画像需求分析 1
任务1.1 需求分析与架构 3
1.1.1 业务需求分析 3
1.1.2 大数据存储技术架构 4
任务1.2 认识Hive 7
1.2.1 Hive简介 8
1.2.2 Hive的架构 8
1.2.3 Hive设计特性 10
小结 12
课后习题 13
第 2章 部署开发环境 14
任务2.1 安装部署Hadoop集群 15
2.1.1 VMware虚拟机安装和网络设置 15
2.1.2 部署CentOS 19
2.1.3 Hadoop集群部署前准备 33
2.1.4 Hadoop集群部署 37
任务2.2 安装部署Hive 51
2.2.1 安装配置MySQL 52
2.2.2 安装配置Hive 52
任务2.3 使用Hive CLI 56
2.3.1 启动Hive CLI 56
2.3.2 在Hive中执行Bash Shell和Hadoop dfs命令 57
2.3.3 在Shell中执行Hive查询 58
小结 59
课后习题 59
第3章 广电用户数据存储 62
任务3.1 创建业务数据表 63
3.1.1 操作Hive数据库 63
3.1.2 了解Hive数据类型 66
3.1.3 创建与管理Hive表 68
3.1.4 任务实现 78
任务3.2 将数据导入Hive表中 84
3.2.1 装载数据至Hive表中 85
3.2.2 任务实现 86
小结 87
实训 创建轮船乘客表并导入数据至表中 88
课后习题 89
第4章 广电用户基本数据简单查询 91
任务4.1 查询广电用户的用户编号及开户时间 92
4.1.1 SELECT语句 93
4.1.2 任务实现 94
任务4.2 查询指定用户状态的用户基本数据 95
4.2.1 使用WHERE关键字添加查询条件 95
4.2.2 使用WHERE关键字添加常见查询条件 96
4.2.3 任务实现 101
任务4.3 统计用户基本数据表中品牌名称的种类数 102
4.3.1 使用DISTINCT关键字去重查询 102
4.3.2 使用聚合函数 103
4.3.3 任务实现 105
任务4.4 统计不同用户等级名称的记录数 105
4.4.1 设置列别名 105
4.4.2 任务实现 107
任务4.5 统计不同用户状态的记录数 108
4.5.1 使用GROUP BY关键字分组查询 109
4.5.2 任务实现 111
任务4.6 统计指定用户数量范围的用户等级 111
4.6.1 使用HAVING关键字对分组结果进行筛选 111
4.6.2 任务实现 112
任务4.7 统计用户数最多的3种用户状态 113
4.7.1 使用LIMIT关键字设置查询结果展示 113
4.7.2 使用排序关键字对查询结果排序 114
4.7.3 任务实现 117
任务4.8 查询用户发生状态变更的时间及开户时间 118
4.8.1 使用正则表达式查询数据 118
4.8.2 任务实现 119
小结 120
实训 查询电商货品订单数据 120
课后习题 122
第5章 广电用户账单与订单数据查询进阶 124
任务5.1 统计订单的消费类型 125
5.1.1 介绍Hive内置函数 125
5.1.2 使用条件函数 127
5.1.3 使用类型转换函数 128
5.1.4 任务实现 129
任务5.2 统计用户每年消费应付总额 130
5.2.1 使用字符函数 130
5.2.2 任务实现 132
任务5.3 统计用户每月消费应付总额 133
5.3.1 使用日期函数 134
5.3.2 任务实现 137
任务5.4 统计用户每月实际账单金额 138
5.4.1 使用数学函数 138
5.4.2 任务实现 140
任务5.5 查询用户宽带订单的地址数据 141
5.5.1 使用JOIN语句 141
5.5.2 介绍UNION ALL关键字 145
5.5.3 任务实现 145
任务5.6 抽样统计用户订购产品情况 146
5.6.1 使用桶表抽样查询 147
5.6.2 任务实现 147
小结 149
实训 149
实训1 查询员工数据 149
实训2 查询学生数据 151
课后习题 152
第6章 广电用户收视行为数据查询优化 154
任务6.1 使用视图统计不同节目的用户观看人数 156
6.1.1 创建视图 156
6.1.2 查看与删除视图 157
6.1.3 任务实现 159
任务6.2 优化统计直播频道数 159
6.2.1 配置Fetch抓取 160
6.2.2 合理设置map和reduce任务数 161
6.2.3 配置并行执行 164
6.2.4 任务实现 165
任务6.3 使用子查询统计节目类型为直播的频道Top10 166
6.3.1 使用子查询优化查询语句 166
6.3.2 优化配置GROUP BY语句 167
6.3.3 使用GROUP BY代替COUNT(DISTINCT)去重统计 169
6.3.4 优化配置LIMIT语句 171
6.3.5 任务实现 171
小结 173
实训 173
实训1 统计某城市各线路公交车的刷卡次数 173
实训2 统计某百货商场会员总消费金额Top10 174
课后习题 175
第7章 广电用户数据清洗及数据导出 178
任务7.1 清洗无效用户数据 179
7.1.1 探索无效用户数据 179
7.1.2 删除无效用户数据 185
任务7.2 清洗无效收视行为数据 186
7.2.1 探索无效收视行为数据 186
7.2.2 删除无效收视行为数据 191
任务7.3 清洗无效账单和订单数据 192
7.3.1 探索无效账单数据 193
7.3.2 探索无效订单数据 193
7.3.3 删除无效账单和无效订单数据 194
任务7.4 导出处理结果至Linux本地和HDFS 194
7.4.1 使用INSERT OVERWRITE语句将数据导出至文件系统 194
7.4.2 保存处理结果至Linux本地和HDFS 196
小结 198
实训 198
实训1 删除无效房价数据 198
实训2 删除恶意好评手机数据并保存结果至Linux本地 199
课后习题 199
第8章 广电用户数据存储与处理的程序开发 202
任务8.1 配置Hive远程服务 203
任务8.2 搭建Hive远程连接环境 205
8.2.1 创建IDEA开发项目 205
8.2.2 添加依赖 208
8.2.3 手动加载MySQL驱动 210
8.2.4 JDBC及其主要接口 212
8.2.5 创建连接测试程序 215
任务8.3 编写程序实现广电数据的存储 217
8.3.1 创建开发项目 217
8.3.2 创建HiveHelper类和连接Hive 217
8.3.3 创建测试类 219
8.3.4 创建Hive数据库 220
8.3.5 创建Hive表 220
8.3.6 装载数据 221
8.3.7 程序运行与调试 221
任务8.4 编写程序实现广电数据的查询与处理 223
8.4.1 查询数据 223
8.4.2 删除无效用户数据 225
8.4.3 删除无效收视行为数据 226
8.4.4 删除无效账单和无效订单数据 227
小结 228
实训 228
实训1 对Hadoop日志进行统计分析 228
实训2 通过程序实现对某技术论坛日志的分析 229
课后习题 230