目 录
第1章 Hadoop简介 1
1.1 Hadoop分布式文件系统 1
1.1.1 高可用性 2
1.1.2 内部DataNode均衡器 4
1.1.3 纠删码 4
1.1.4 端口号 4
1.2 MapReduce框架 5
1.3 YARN 6
1.3.1 机会型容器 7
1.3.2 YARN时间轴服务v.2 7
1.4 其他变化内容 9
1.4.1 最低Java版本 9
1.4.2 Shell脚本重写 9
1.4.3 覆盖客户端的JAR 10
1.5 安装Hadoop 3 10
1.5.1 准备条件 10
1.5.2 下载 10
1.5.3 安装 12
1.5.4 设置无密码ssh 12
1.5.5 设置NameNode 13
1.5.6 启动HDFS 13
1.5.7 设置YARN服务 17
1.5.8 纠删码 18
1.5.9 内部DataNode平衡器 21
1.5.10 安装时间轴服务v.2 21
1.6 本章小结 27
第2章 大数据分析概述 29
2.1 数据分析简介 29
2.2 大数据简介 30
2.2.1 数据的多样性 31
2.2.2 数据的速度 32
2.2.3 数据的容量 32
2.2.4 数据的准确性 32
2.2.5 数据的可变性 33
2.2.6 可视化 33
2.2.7 数值 33
2.2 使用Apache Hadoop的分布式计算 33
2.4 MapReduce框架 34
2.5 Hive 35
2.5.1 下载并解压Hive二进制文件 37
2.5.2 安装Derby 37
2.5.3 使用Hive 39
2.5.4 SELECT语句的语法 41
2.5.5 INSET语句的语法 44
2.4.6 原始类型 44
2.5.7 复杂类型 45
2.5.8 内建运算符和函数 45
2.5.9 语言的功能 50
2.6 Apache Spark 51
2.7 基于Tableau的可视化操作 52
2.8 本章小结 54
第3章 基于MapReduce的大数据处理 55
3.1 MapReduce框架 55
3.1.1 数据集 57
3.1.2 记录读取器 58
3.1.3 映射 59
3.1.4 组合器 59
3.1.5 分区器 60
3.1.6 混洗和排序 60
3.1.7 reducer任务 60
3.1.8 输出格式 61
3.2 MapReduce作业类型 61
3.2.1 SingleMapper作业 63
3.2.2 SingleMapperReducer作业 72
3.2.3 MultipleMappersReducer作业 77
3.2.4 SingleMapperReducer作业 83
3.2.5 应用场景 84
3.3 MapReduce模式 88
3.3.1 聚合模式 88
3.3.2 过滤模式 90
3.3.3 连接模式 91
3.4 本章小结 100
第4章 Python-Hadoop科学计算和大数据分析 101
4.1 安装操作 101
4.1.1 安装Python 101
4.1.2 安装Anaconda 103
4.2 数据分析 110
4.3 本章小结 134
第5章 R-Hadoop统计数据计算 135
5.1 概述 135
5.1.1 在工作站上安装R并连接Hadoop中的数据 135
5.1.2 在共享服务器上安装R并连接至Hadoop 136
5.1.3 利用Revolution R Open 136
5.1.4 利用RMR2在MapReduce内执行R 137
5.2 R语言和Hadoop间的集成方法 138
5.2.1 RHadoop—在工作站上安装R并将数据连接至Hadoop中 139
5.2.2 RHIPE—在Hadoop MapReduce中执行R语言 139
5.2.3 R和Hadoop流 139
5.2.4 RHIVE—在工作站上安装R并连接至Hadoop数据 140
5.2.5 ORCH—基于Hadoop的Oracle连接器 140
5.3 数据分析 140
5.4 本章小结 165
第6章 Apache Spark批处理分析 167
6.1 SparkSQL和DataFrame 167
6.2 DataFrame API和SQL API 171
6.2.1 旋转 176
6.2.2 过滤器 177
6.2.3 用户定义的函数 178
6.3 模式—数据的结构 178
6.3.1 隐式模式 179
6.3.2 显式模式 179
6.3.3 编码器 181
6.4 加载数据集 182
6.5 保存数据集 183
6.6 聚合 183
6.6.1 聚合函数 184
6.6.2 窗口函数 194
6.6.3 ntiles 195
6.7 连接 197
6.7.1 连接的内部工作机制 199
6.7.2 混洗连接 199
6.7.3 广播连接 199
6.7.4 连接类型 200
6.7.5 内部连接 201
6.7.6 左外连接 202
6.7.7 右外连接 203
6.7.8 全外连接 204
6.7.9 左反连接 205
6.7.10 左半连接 206
6.7.11 交叉连接 206
6.7.12 连接的操作性能 207
6.8 本章小结 208
第7章 Apache Spark实时数据分析 209
7.1 数据流 209
7.1.1 “至少一次”处理 211
7.1.2 “最多一次”处理 211
7.1.3 “仅一次”处理 212
7.2 Spark Streaming 214
7.2.1 StreamingContext 215
7.2.2 创建StreamingContext 215
7.2.3 启用StreamingContext 216
7.2.4 终止StreamingContext 216
7.3 fileStream 217
7.3.1 textFileStream 217
7.3.2 binaryRecordsStream 217
7.3.3 queueStream 218
7.3.4 离散流 219
7.4 转换 222
7.4.1 窗口操作 223
7.4.2 有状态/无状态转换 226
7.5 检查点 227
7.5.1 元数据检查点 228
7.5.2 数据检查点 228
7.6 驱动程序故障恢复 229
7.7 与流平台的互操作性(Apache Kafka) 230
7.7.1 基于接收器的方案 230
7.7.2 Direct Stream 232
7.7.3 Structured Streaming 233
7.8 处理事件时间和延迟日期 236
7.9 容错示意图 237
7.10 本章小结 237
第8章 Apache Flink批处理分析 239
8.1 Apache Flink简介 239
8.1.1 无界数据集的连续处理 240
8.1.2 Flink、数据流模型和有界数据集 241
8.2 安装Flink 241
8.3 使用Flink集群UI 248
8.4 批处理分析 251
8.4.1 读取文件 251
8.4.2 转换 254
8.4.3 groupBy 258
8.4.4 聚合 260
8.4.5 连接 261
8.4.6 写入文件 272
8.5 本章小结 274
第9章 Apache Flink流式处理 275
9.1 流式执行模型简介 275
9.2 利用DataStream API进行数据处理 277
9.2.1 执行环境 278
9.2.2 数据源 278
9.2.3 转换 282
9.3 本章小结 300
第10章 大数据可视化技术 301
10.1 数据可视化简介 301
10.2 Tableau 302
10.3 图表类型 313
10.3.1 线状图 314
10.3.2 饼图 314
10.3.3 柱状图 315
10.3.4 热图 316
10.4 基于Python的数据可视化 317
10.5 基于R的数据可视化 319
10.6 大数据可视化工具 320
10.7 本章小结 321
第11章 云计算简介 323
11.1 概念和术语 323
11.1.1 云 323
11.1.2 IT资源 324
11.1.3 本地环境 324
11.1.4 云使用者和云供应商 324
11.1.5 扩展 324
11.2 目标和收益 325
11.2.1 可扩展性的提升 326
11.2.2 可用性和可靠性的提升 326
11.3 风险和挑战 327
11.3.1 安全漏洞 327
11.3.2 减少运营治理控制 328
11.3.3 云提供商之间有限的可移植性 328
11.4 角色和边界 328
11.4.1 云供应商 328
11.4.2 云使用者 328
11.4.3 云服务持有者 328
11.4.4 云资源管理员 329
11.5 云特征 329
11.5.1 按需使用 330
11.5.2 无处不在的访问 330
11.5.3 多租户机制(和资源池机制) 330
11.5.4 弹性 330
11.5.5 监测应用状态 330
11.5.6 弹性计算 331
11.6 云交付模型 331
11.6.1 基础设施即服务 331
11.6.2 平台即服务 331
11.6.3 软件即服务 332
11.6.4 整合云交付模型 332
11.7 云部署模型 333
11.7.1 公共云 333
11.7.2 社区云 334
11.7.3 私有云 334
11.7.4 混合云 334
11.8 本章小结 335
第12章 使用亚马逊Web服务 337
12.1 Amazon Elastic Compute Cloud 337
12.1.1 弹性Web计算 337
12.1.2 对操作的完整控制 338
12.1.3 灵活的云托管服务 338
12.1.4 集成 338
12.1.5 高可靠性 338
12.1.6 安全性 338
12.1.7 经济性 338
12.1.8 易于启动 339
12.1.9 亚马云及其镜像 339
12.2 启用多个AMI实例 340
12.2.1 实例 340
12.2.2 AMI 340
12.2.3 区域和可用区 340
12.2.4 区域和可用区概念 341
12.2.5 区域 341
12.2.6 可用区 341
12.2.7 可用区域 342
12.2.8 区域和端点 342
12.2.9 实例类型 343
12.2.10 Amazon EC2和亚马逊虚拟私有云 343
12.3 AWS Lambda 344
12.4 Amazon S3简介 345
12.4.1 Amazon S3功能 345
12.4.2 全面的安全和协从能力 346
12.4.3 就地查询 346
12.4.4 灵活的管理机制 346
12.4.5 最受支持的平台以及最大的生态系统 347
12.4.6 简单、方便的数据传输机制 347
12.4.7 备份和恢复 347
12.4.8 数据存档 347
12.4.9 数据湖和数据分析 348
12.4.10 混合云存储 348
12.4.11 原生云应用程序数据 348
12.4.12 灾难恢复 348
12.5 Amazon DynamoDB 349
12.6 Amazon Kinesis Data Streams 349
12.6.1 加速日志和数据提要的输入和处理 350
12.6.2 实时度量和报告机制 350
12.6.3 实时数据分析 350
12.6.4 复杂的数据流处理 350
12.6.5 Kinesis Data Streams的优点 350
12.7 AWS Glue 351
12.8 Amazon EMR 352
12.9 本章小结 363