本书由校企“双元”合作开发,以企业真实项目的实施流程为主线,通过“电商平台用户行为数据分析”项目实战,贯穿Hadoop大数据核心技术,包括项目需求、大数据平台部署、数据采集、离线数据仓库设计与开发和项目数据可视化展示。本书内容主要涉及VMware、Xshell、IDEA等软件的安装配置;Hadoop分布式集群环境搭建; Flume、Kafka、Hive、Sqoop、ZooKeeper等Hadoop生态组件的基本工作原理、搭建及配置方法;使用Flume-Kafka-Flume架构实现数据采集;Hive离线数据仓库的设计与开发;使用pyecharts工具进行数据可视化展示。本书为省级精品在线开放课程配套教材,同时配有课程标准、软件安装包、项目源代码、习题库、微课视频等,可以帮助读者更好地学习本书内容。本书可以作为高等职业院校大数据、云计算、软件技术等相关专业教材,也可以作为从事大数据平台运维、大数据分析、云计算应用等技术人员的参考用书。
王小洁,女,副教授,山西职业技术学院,山西职业技术学院大数据技术专业是国家"双高”建设专业群的龙头专业,与华为、新华三、中软国际等知名企业开展校企合作,在人才培养模式创新、课程教学资源建设、教材与教法改革、教师教学创新团队等方面均进行改革创新。大数据技术专业每年招生200余人,具有一定 的专业规模。
绪 论 1
学习目标 1
重点难点 1
学习方法 1
思考与练习 2
模块1 项目需求 3
学习目标 3
项目概述 3
1.1 项目业务背景 3
1.2 项目实施计划 5
1.2.1 项目实施流程规划 5
1.2.2 技术选型及版本 6
1.2.3 项目实施的教学路径 7
1.3 项目数据字典介绍 8
1.3.1 数据源数据结构字典 8
1.3.2 Hive表数据字典 13
素养园地 17
项目总结 17
思考与练习 17
模块2 大数据平台部署 20
学习目标 20
项目概述 20
2.1 大数据相关开发软件安装 20
2.2 Linux系统环境配置 28
2.2.1 安装虚拟机 28
2.2.2 克隆虚拟机 50
2.2.3 虚拟机免密码登录配置 57
2.2.4 Linux项目路径规划 70
2.3 Hadoop分布式集群环境搭建 73
2.3.1 JDK安装配置 73
2.3.2 Hadoop框架介绍及组成 77
2.3.3 HDFS集群配置 79
2.3.4 YARN集群配置 89
2.3.5 HDFS Shell命令行操作 95
2.3.6 HDFS客户端开发环境配置及测试 98
2.3.7 HDFS API基本操作 115
2.3.8 MapReduce原理 121
2.3.9 MapReduce案例——词频统计 122
2.4 Hive数据仓库服务配置 131
2.4.1 MySQL环境配置 131
2.4.2 Hive环境配置 135
2.4.3 Hive与MySQL整合操作及Hive服务启动 138
2.4.4 HQL语句基本操作 141
2.4.5 HQL统计分析案例 143
2.5 Flume原理及安装部署 144
2.6 Sqoop原理及应用 145
2.6.1 Sqoop原理及安装部署 146
2.6.2 Sqoop数据迁移案例 147
2.7 ZooKeeper集群环境搭建 151
2.8 Kafka集群环境搭建及应用 154
2.8.1 Kafka集群环境搭建 154
2.8.2 Kafka常用命令及使用方法 157
素养园地 159
项目总结 160
思考与练习 161
模块3 数据采集 165
学习目标 165
项目概述 165
3.1 项目数据源及产生方法 165
3.2 Flume脚本设计 167
3.2.1 Flume采集原理及流程 167
3.2.2 Flume数据采集脚本设计 170
3.2.3 拦截器链的创建流程 172
3.2.4 ETL拦截器业务逻辑分析 182
3.2.5 分流标记拦截器业务逻辑分析 183
3.2.6 Flume数据采集执行脚本及实现 184
3.2.7 Flume数据消费脚本设计 187
3.2.8 Flume数据消费执行脚本及实现 191
素养园地 195
项目总结 195
思考与练习 195
模块4 离线数据仓库设计与开发 198
学习目标 198
项目概述 198
4.1 离线数据仓库概述 198
4.2 ODS层设计与开发 199
4.3 DWD层设计与开发 204
4.3.1 项目JSON解析函数及应用 204
4.3.2 启动日志表设计及数据加载 206
4.4 DWS层设计与开发 209
4.5 DWT层设计与开发 212
4.5.1 HQL关联查询(1) 212
4.5.2 HQL关联查询(2) 216
4.5.3 HQL关联查询(3) 218
4.5.4 设备主题表设计及数据加载 219
4.6 ADS层设计与开发 222
4.6.1 活跃用户数据表设计及数据加载 223
4.6.2 每日新增用户数据表设计及数据加载 224
4.6.3 沉默用户数据表设计及数据加载 226
4.6.4 本周回流用户数据表设计及数据加载 228
4.6.5 用户留存率数据表设计及数据加载 229
素养园地 243
项目总结 243
思考与练习 243
模块5 项目数据可视化展示 246
学习目标 246
项目概述 246
5.1 创建MySQL数据表 246
5.1.1 大数据报表系统 246
5.1.2 MySQL数据表的创建 247
5.2 Sqoop数据迁移 248
5.3 数据可视化 250
5.3.1 pyecharts可视化工具介绍 251
5.3.2 导入数据、绘制大屏标题 269
5.3.3 绘制柱状图 283
5.3.4 绘制象形柱状图、水球图 287
5.3.5 绘制柱状图与折线图的叠加图 291
5.3.6 绘制轮播图 294
5.3.7 数据大屏展示 297
素养园地 301
项目总结 301
思考与练习 301
课程学习成果评价 304
参考文献 306