目 录
第1章 大数据与Hadoop 1
1.1 什么是大数据 1
1.2 大数据的来源 2
1.3 如何处理大数据 3
1.3.1 数据分析与挖掘 3
1.3.2 基于云平台的分布式处理 4
1.4 Hadoop 3新特性 6
1.5 虚拟机与Linux操作系统的安装 7
1.5.1 VirtualBox虚拟机的安装 7
1.5.2 Linux操作系统的安装 8
1.6 SSH工具与使用 14
1.7 Linux统一设置 16
1.8 本章小结 17
第2章 Hadoop伪分布式集群 18
2.1 安装独立运行的Hadoop 19
2.2 Hadoop伪分布式环境准备 21
2.3 Hadoop伪分布式安装 25
2.4 HDFS操作命令 31
2.5 Java项目访问HDFS 33
2.6 winutils 38
2.7 快速MapReduce程序示例 39
2.8 本章小结 42
第3章 HDFS分布式文件系统 43
3.1 HDFS的体系结构 43
3.2 NameNode的工作 44
3.3 SecondaryNameNode 49
3.4 DataNode 50
3.5 HDFS的命令 51
3.6 RPC远程过程调用 52
3.7 本章小结 53
第4章 分布式运算框架MapReduce 55
4.1 MapReduce的运算过程 55
4.2 WordCount示例 57
4.3 自定义Writable 60
4.4 Partitioner分区编程 63
4.5 自定义排序 65
4.6 Combiner编程 67
4.7 默认Mapper和默认Reducer 68
4.8 倒排索引 69
4.9 Shuffle 73
4.9.1 Spill过程 73
4.9.2 Sort过程 74
4.9.3 Merge过程 75
4.10 本章小结 76
第5章 Hadoop输入输出 78
5.1 自定义文件输入流 79
5.1.1 自定义LineTextInputFormat 79
5.1.2 自定义ExcelInputFormat类 82
5.1.3 DBInputFormat 86
5.1.4 自定义输出流 89
5.2 顺序文件SequenceFile的读写 90
5.2.1 生成一个顺序文件 91
5.2.2 读取顺序文件 91
5.2.3 获取Key/Value类型 92
5.2.4 使用SequenceFileInputFormat读取数据 93
5.3 本章小结 95
第6章 Hadoop分布式集群配置 96
6.1 Hadoop集群 96
6.2 本章小结 100
第7章 Hadoop高可用集群搭建 101
7.1 ZooKeeper简介 101
7.2 ZooKeeper集群安装 104
7.3 znode节点类型 105
7.4 观察节点 106
7.5 配置Hadoop高可靠集群 106
7.6 用Java代码操作集群 115
7.7 本章小结 117
第8章 数据仓库Hive 118
8.1 Hive简介 118
8.2 Hive3的安装配置 120
8.2.1 使用Derby数据库保存元数据 120
8.2.2 使用MySQL数据库保存元数据 121
8.3 Hive命令 124
8.4 Hive内部表 127
8.5 Hive外部表 128
8.6 Hive表分区 128
8.6.1 分区的技术细节 128
8.6.2 分区示例 131
8.7 查询示例汇总 133
8.8 Hive函数 134
8.8.1 关系运算符号 135
8.8.2 更多函数 136
8.8.3 使用Hive函数实现WordCount 138
8.9 本章小结 140
第9章 HBase数据库 141
9.1 HBase的特点 141
9.1.1 HBase的高并发和实时处理数据 142
9.1.2 HBase的数据模型 142
9.2 HBase的安装 144
9.2.1 HBase的单节点安装 145
9.2.2 HBase的伪分布式安装 147
9.2.3 Java客户端代码 149
9.2.4 其他Java操作代码 152
9.3 HBase集群安装 155
9.4 HBase Shell操作 159
9.4.1 DDL操作 160
9.4.2 DML操作 162
9.5 本章小结 166
第10章 Flume数据采集 167
10.1 Flume简介 167
10.1.1 Flume原理 167
10.1.2 Flume的一些核心概念 168
10.2 Flume的安装与配置 169
10.3 快速示例 169
10.4 在ZooKeeper中保存Flume的配置文件 171
10.5 Flume的更多Source 174
10.5.1 avro source 174
10.5.2 thrift source和thrift sink 178
10.5.3 exec source 181
10.5.4 spool source 182
10.5.5 HDFS sinks 183
10.6 本章小结 184
第11章 Spark框架搭建及应用 185
11.1 安装Spark 186
11.1.1 本地模式 186
11.1.2 伪分布式安装 188
11.1.3 集群安装 191
11.1.4 Spark on YARN 193
11.2 使用Scala开发Spark应用 196
11.2.1 安装Scala 196
11.2.2 开发Spark程序 197
11.3 spark-submit 200
11.3.1 使用spark-submit提交 200
11.3.2 spark-submit参数说明 201
11.4 DataFrame 203
11.4.1 DataFrame概述 203
11.4.2 DataFrame基础应用 205
11.5 Spark SQL 210
11.5.1 快速示例 211
11.5.2 Read和Write 215
11.6 Spark Streaming 216
11.6.1 快速示例 217
11.6.2 DStream 220
11.6.3 FileStream 220
11.6.4 窗口函数 222
11.6.5 updateStateByKey 223
11.7 共享变量 225
11.7.1 广播变量 225
11.7.2 累加器 227
11.8 本章小结 227
第12章 Spark机器学习 228
12.1 机器学习 228
12.1.1 机器学习概述 228
12.1.2 Spark ML 230
12.2 典型机器学习流程介绍 230
12.2.1 提出问题 230
12.2.2 假设函数 231
12.2.3 代价函数 232
12.2.4 训练模型确定参数 233
12.3 经典算法模型实战 233
12.3.1 聚类算法实战 233
12.3.2 回归算法实战 236
12.3.3 协同过滤算法实战 239
第13章 影评分析项目实战 245
13.1 项目内容 245
13.2 项目需求及分析 246
13.3 详细实现 250
13.3.1 搭建项目环境 250
13.3.2 编写爬虫类 253
13.3.3 编写分词类 255
13.3.4 第一个job的Map阶段实现 259
13.3.5 一个job的Reduce阶段实现 259
13.3.6 第二个job的Map阶段实现 260
13.3.7 第二个job的自定义排序类阶段的实现 261
13.3.8 第二个job的自定义分区阶段实现 261
13.3.9 第二个job的Reduce阶段实现 262
13.3.10 Run程序主类实现 262
13.3.11 编写词云类 263
13.3.12 效果测试 264
第14章 旅游酒店评价分析项目实战 266
14.1 项目介绍 266
14.2 项目需求及分析 267
14.2.1 数据集需求 267
14.2.2 功能需求 267
14.3 详细实现 268
14.3.1 数据集上传到HDFS 269
14.3.2 Spark数据清洗 271
14.3.3 构建Hive数据仓库表 274
14.3.4 Hive表数据导出到MySQL 280
14.3.5 数据可视化开发 282