MapReduce 2.0源码分析与编程实战

978-7-115-33237-0
作者: 王晓华
译者:
编辑: 陈冀康

图书目录:

目 录

第 1章 大象也会跳舞

1.1 大数据时代 1

1.2 大数据分析时代 2

1.3 简单、粗暴、有效——这就是Hadoop 3

1.4 MapReduce与Hadoop 4

1.5 看,大象也会跳舞 6

本章小结 7

第 2章 大象的肚子——HDFS文件系统详解

2.1 HDFS基础详解 8

2.1.1 HDFS设计思路 9

2.1.2 HDFS架构与基本存储单元 10

2.2 HDFS数据存取流程分析 11

2.2.1 HDFS数据存储位置与复制详解 12

2.2.2 HDFS 输入流程分析 14

2.2.3 HDFS输出流程分析 15

2.3 HDFS命令行操作详解 16

2.3.1 HDFS中4个通用的命令行操作 17

2.3.2 HDFS文件18个基本命令行的操作 17

2.3.3 HDFS文件访问权限详解 21

2.4 通过Web浏览HDFS文件 22

2.5 HDFS接口使用详解 24

2.5.1 使用FileSystem API操作HDFS中的内容 24

2.5.2 使用FileSystem API读取数据详解 26

2.5.3 使用FileSystem API写入数据详解 29

2.6 HDFS文件同步与并发访问 32

本章小结 32

第3章 “吃下去吐出来”——Hadoop文件I/O系统详解

3.1 Hadoop的压缩类型介绍 34

3.2 Hadoop的压缩类库 36

3.2.1 从一个简单的例子开始 36

3.2.2 CompressionCodec接口 36

3.2.3 CompressionCodecFactory类详解 38

3.2.4 压缩池 40

3.2.5 在Hadoop中使用压缩 41

3.3 I/O中序列化类型详解 43

3.3.1 Text类详解 44

3.3.2 IntWritable类详解 49

3.3.3 ObjectWritable类详解 50

3.3.4 NullWritable类详解 51

3.3.5 ByteWritable类详解 52

3.4 实现自定义的Writable类型 52

3.4.1 Writable接口 53

3.4.2 WritableComparable接口与RawComparator接口 54

3.4.3 自定义的Writable类 55

3.4.4 为了更快的比较 57

3.5 Hadoop中小文件处理详解 60

3.5.1 SequenceFile详解 60

3.5.2 MapFile详解 65

本章小结 68

第4章 “大象的大脑”——MapReduce框架结构与源码分析

4.1 MapReduce框架结构与源码分析 69

4.1.1 MapReduce框架分析与执行过程详解 70

4.1.2 MapReduce输入输出与源码分析 72

4.1.3 MapReduce中Job类详解 76

4.2 编程实战:经典的MapReduce单词计数程序 80

4.2.1 准备工作 81

4.2.2  MapReduce过程分析 82

4.2.3 计数程序的MapReduce实现 84

4.2.4 计数程序的main方法 86

4.2.5 注意事项 87

4.2.6 运行结果 89

4.2.7 Mapper中的Combiner详解 91

本章小结 91

第5章 深入!MapReduce配置与测试

5.1 MapReduce环境变量配置详解 93

5.1.1 使用XML配置新的配置文件 93

5.1.2 修改已有的配置文件 95

5.1.3 辅助类ToolRunner、Configured详解 98

5.2 使用MRUnit对MapReduce进行测试 101

5.2.1 MRUnit简介与使用 101

5.2.2 使用MRUnit完成Mapper单元测试 103

5.2.3 使用MRUnit完成Reduce单元测试 104

5.2.4 使用MRUnit完成MapReduce单元测试 105

5.3 在本地磁盘上进行MapReduce测试 106

5.3.1 伪环境欺骗 107

5.3.2 在Eclipse中配置Hadoop插件 107

5.3.3 编写本地测试代码 110

5.4 MapReduce计数器 114

5.4.1 使用计数器的MapReduce程序设计 114

5.4.2 通过Web接口进行任务分析 117

5.4.3 通过Web接口查看计数器 120

本章小结 122

第6章 大象的思考流程——MapReduce运行流程详解

6.1 经典MapReduce任务的工作流程 123

6.1.1 ClientNode执行任务的初始化 124

6.1.2 消息传递 125

6.1.3 MapReduce任务的执行 126

6.1.4 任务的完成与状态更新 126

6.2 经典MapReduce任务异常处理详解 127

6.2.1 MapReduce任务异常的处理方式 127

6.2.2 MapReduce任务失败的处理方式 130

6.3 经典MapReduce任务的数据处理过程 131

6.3.1 Map端的输入数据处理过程 132

6.3.2 Reduce端的输入数据处理过程 132

6.3.3 Java虚拟机重用 133

6.4 MapReduce 2.0(YARN)工作流程详解 133

6.4.1 YARN概述 134

6.4.2 YARN任务过程分析 136

6.4.3 YARN的异常处理 137

本章小结 138

第7章 更强的大象——MapReduce高级程序设计续

7.1 MapReduce程序设计默认格式类型详解 139

7.1.1 map与reduce方法的默认输入输出类型 139

7.1.2 自定义输入输出类型设置 140

7.1.3 自定义全局类型变量设置要求 143

7.1.4 默认的MapReduce程序设置 145

7.2 InputFormat输入格式详解 147

7.2.1 输入记录与分区 148

7.2.2 InputFormat源码及执行过程分析 149

7.2.3 实现自己的RecordReader类 150

7.2.4 自定义的FileInputFormat类 154

7.2.5 一些常用的InputFormat类详解 158

7.3 OutputFormat输出格式详解 160

7.3.1 OutputFormat默认输出格式 160

7.3.2 自定义OutputFormat输出格式 161

7.3.3 对Reduce任务数进行设置 165

7.3.4 OutputFormat分区类Partitioner详解 168

7.4 多种输入与输出使用介绍 174

7.4.1 MultipleInputs多种输入方式详解 174

7.4.2 MultipleOutputs多种输出方式详解 175

本章小结 176

第8章 MapReduce相关特性详解

8.1 MapReduce计数器 177

8.1.1 Hadoop框架内置的计数器 177

8.1.2 自定义计数器 181

8.1.3 动态计数器 184

8.1.4 获取计数器值 186

8.2 排序与查找 187

8.2.1 普通排序规则与查找 188

8.2.2 使用MapFile进行排序与查找 189

8.3 对输出结果的值分组排序 193

8.3.1 准备工作 193

8.3.2 对结果进行分组处理 195

8.3.3 对键的二次排序 196

8.3.4 自定义输出分组 198

8.4 编程实战:使用二次排序自动查找**小值 199

8.4.1 思路分析 200

8.4.2 验证输入输出结果 202

8.4.3 对结果进行二次排序 204

8.4.4 对结果进行分组 205

8.4.5 分片处理排序与分组 206

8.4.6 验证结果 207

本章小结 211

第9章 啤酒与尿布——MapReduce连接与数据挖掘初步

9.1 对于同样格式数据进行MapReduce连接 212

9.2 对于不同格式数据进行MapReduce连接 216

9.3 不能说的秘密——啤酒与尿布 219

9.3.1 销售清单的秘密 219

9.3.2 设计程序 220

9.3.3 程序执行结果 221

9.4 数据挖掘初步 223

本章小结 226

第 10章 MapReduce实战编程及深度分析

10.1 编程实战:自定义数据库中读取数据 227

10.1.1 准备工作 227

10.1.2 程序分析 228

10.1.3 自定义SQLInputFormat 229

10.1.4 使用自定义程序从数据库中读取数据 232

10.1.5 程序运行及数据分析 234

10.1.6 使用合并记录进行性能调优 236

10.2 编程实战:串联寻找共同转载微博 239

10.2.1 应用分析 240

10.2.2 第 一步表转换 241

10.2.3 建立关注连接 243

10.2.4 自定义的OutputFormat 245

10.2.5 串联解决共同转载微博 246

10.2.6 性能调优及后续处理 250

10.3 编程实战:云存储模型 251

10.3.1 应用分析 251

10.3.2 Tomcat简介 252

10.3.3 配置Tomcat服务器 254

10.3.4 测试Tomcat服务器 256

10.3.5 在Eclipse中配置Tomcat 257

10.3.6 创建云存储目录 260

10.3.7 获取云存储列表 262

10.3.8 将文件上传到数据云存储中 264

10.3.9 删除文件 269

10.3.10 下载云端存储文件 270

10.3.11 程序执行与性能调优 272

10.4 编程实战:多文档相似关键字检索 272

10.4.1 应用分析 273

10.4.2 自定义任务处理类 275

10.4.3 程序执行及后续分析 277

10.5 编程实战:学生成绩整理与分组 279

10.5.1 应用分析 279

10.5.2 自定义的ScoreWritable 280

10.5.3 自定义的MapReduce 281

10.5.4 自定义的分组 282

10.5.5 程序运行结果 283

10.5.6 采用更多分组类型 289

本章小结 289

详情

本书通过循序渐进介绍Hadoop的基本组成部分,从底层HDFS构建到MapReduce的处理过程,向读者展示了Hadoop底层存储和处理大数据的方法。通过对开源项目MapReduce的源码分析和实例解读,主要介绍了使用MapReduce进行实战程序设计方法,向读者详细说明了从使用程序进行从基础的HDFS文件的增删改查,到使用编程手段获取数据处理结果的程序方法。

图书摘要

相关图书

D3 4.x数据可视化实战手册(第2版)
D3 4.x数据可视化实战手册(第2版)
数据科学实战手册(第2版)
数据科学实战手册(第2版)
Java数据分析指南
Java数据分析指南
Java数据科学指南
Java数据科学指南
Hadoop虚拟化
Hadoop虚拟化
数据科学家访谈录
数据科学家访谈录

相关文章

相关课程