Hadoop技术内幕 深入理解MapReduce架构设计与实现原理

内容简介:

《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》内容简介:“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和“MapReduce的架构设计和实现原理”进行了极为详细的分析。《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和Task等MapReduce运行时环境的架构设计与实现原理,最后从实际应用的角度深入讲解了Hadoop的性能优化、安全机制、多用户作业调度器和下一代MapReduce框架等高级主题和内容。《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》适合Hadoop的二次开发人员、应用开发工程师、运维工程师阅读。

资源目录:

前 言

第一部分 基础篇

第1章 阅读源代码前的准备/ 2

1.1 准备源代码学习环境/ 2

1.1.1 基础软件下载/ 2

1.1.2 如何准备Windows环境/ 3

1.1.3 如何准备Linux环境/ 6

1.2 获取Hadoop源代码/ 7

1.3 搭建Hadoop源代码阅读环境/ 8

1.3.1 创建Hadoop工程/ 8

1.3.2 Hadoop源代码阅读技巧/ 9

1.4 Hadoop源代码组织结构/ 10

1.5 Hadoop初体验/ 13

1.5.1 启动Hadoop/ 13

1.5.2 Hadoop Shell介绍/ 15

1.5.3 Hadoop Eclipse插件介绍/ 15

1.6 编译及调试Hadoop源代码/ 19

1.6.1 编译Hadoop源代码/ 19

1.6.2 调试Hadoop源代码/ 20

1.7 小结/ 23

第2章 MapReduce设计理念与基本架构/ 24

2.1 Hadoop发展史/ 24

2.1.1 Hadoop产生背景/ 24

2.1.2 Apache Hadoop新版本的特性/ 25

2.1.3 Hadoop版本变迁/ 26

2.2 Hadoop MapReduce设计目标/ 28

2.3 MapReduce编程模型概述/ 29

2.3.1 MapReduce编程模型简介/ 29

2.3.2 MapReduce编程实例/ 31

2.4 Hadoop基本架构/ 32

2.4.1 HDFS架构/ 33

2.4.2 Hadoop MapReduce架构/ 34

2.5 Hadoop MapReduce作业的生命周期/ 36

2.6 小结/ 38

第二部分 MapReduce编程模型篇

第3章 MapReduce编程模型/ 40

3.1 MapReduce编程模型概述/ 40

3.1.1 MapReduce编程接口体系结构/ 40

3.1.2 新旧MapReduce API比较/ 41

3.2 MapReduce API基本概念/ 42

3.2.1 序列化/ 42

3.2.2 Reporter参数/ 43

3.2.3 回调机制/ 43

3.3 Java API解析/ 44

3.3.1 作业配置与提交/ 44

3.3.2 InputFormat接口的设计与实现/ 48

3.3.3 OutputFormat接口的设计与实现/ 53

3.3.4 Mapper与Reducer解析/ 55

3.3.5 Partitioner接口的设计与实现/ 59

3.4 非Java API解析/ 61

3.4.1 Hadoop Streaming的实现原理/ 61

3.4.2 Hadoop Pipes的实现原理/ 64

3.5 Hadoop工作流/ 67

3.5.1 JobControl的实现原理/ 67

3.5.2 ChainMapper/ChainReducer的实现原理/ 69

3.5.3 Hadoop工作流引擎/ 71

3.6 小结/ 73

第三部分 MapReduce核心设计篇

第4章 Hadoop RPC框架解析/ 76

4.1 Hadoop RPC框架概述/ 76

4.2 Java基础知识/ 77

4.2.1 Java反射机制与动态代理/ 78

4.2.2 Java网络编程/ 80

4.2.3 Java NIO/ 82

4.3 Hadoop RPC基本框架分析/ 89

4.3.1 RPC基本概念/ 89

4.3.2 Hadoop RPC基本框架/ 91

4.3.3 集成其他开源RPC框架/ 98

4.4 MapReduce通信协议分析/ 100

4.4.1 MapReduce 通信协议概述/ 100

4.4.2 JobSubmissionProtocol通信协议/ 102

4.4.3 InterTrackerProtocol通信协议/ 102

4.4.4 TaskUmbilicalProtocol通信协议/ 103

4.4.5 其他通信协议/ 104

4.5 小结/ 106

第5章 作业提交与初始化过程分析/ 107

5.1 作业提交与初始化概述/ 107

5.2 作业提交过程详解/ 108

5.2.1 执行Shell命令/ 108

5.2.2 作业文件上传/ 109

5.2.3 产生InputSplit文件/ 111

5.2.4 作业提交到JobTracker/ 113

5.3 作业初始化过程详解/ 115

5.4 Hadoop DistributedCache原理分析/ 117

5.4.1 使用方法介绍/ 118

5.4.2 工作原理分析/ 120

5.5 小结/ 122

第6章 JobTracker内部实现剖析/ 123

6.1 JobTracker概述/ 123

6.2 JobTracker启动过程分析/ 125

6.2.1 JobTracker启动过程概述/ 125

6.2.2 重要对象初始化/ 125

6.2.3 各种线程功能/ 128

6.2.4 作业恢复/ 129

6.3 心跳接收与应答/ 129

6.3.1 更新状态/ 131

6.3.2 下达命令/ 131

6.4 Job和Task运行时信息维护/ 134

6.4.1 作业描述模型/ 134

6.4.2 JobInProgress/ 136

6.4.3 TaskInProgress/ 137

6.4.4 作业和任务状态转换图/ 139

6.5 容错机制/ 141

6.5.1 JobTracker容错/ 141

6.5.2 TaskTracker容错/ 142

6.5.3 Job/Task容错/ 145

6.5.4 Record容错/ 147

6.5.5 磁盘容错/ 151

6.6 任务推测执行原理/ 152

6.6.1 计算模型假设/ 153

6.6.2 1.0.0版本的算法/ 153

6.6.3 0.21.0版本的算法/ 154

6.6.4 2.0版本的算法/ 156

6.7 Hadoop资源管理/ 157

6.7.1 任务调度框架分析/ 159

6.7.2 任务选择策略分析/ 162

6.7.3 FIFO调度器分析/ 164

6.7.4 Hadoop资源管理优化/ 165

6.8 小结/ 168

第7章 TaskTracker内部实现剖析/ 169

7.1 TaskTracker概述/ 169

7.2 TaskTracker启动过程分析/ 170

7.2.1 重要变量初始化/ 171

7.2.2 重要对象初始化/ 171

7.2.3 连接JobTracker/ 172

7.3 心跳机制/ 172

7.3.1 单次心跳发送/ 172

7.3.2 状态发送/ 175

7.3.3 命令执行/ 178

7.4 TaskTracker行为分析/ 179

7.4.1 启动新任务/ 179

7.4.2 提交任务/ 179

7.4.3 杀死任务/ 181

7.4.4 杀死作业/ 182

7.4.5 重新初始化/ 184

7.5 作业目录管理/ 184

7.6 启动新任务/ 186

7.6.1 任务启动过程分析/ 186

7.6.2 资源隔离机制/ 193

7.7 小结/ 195

第8章 Task运行过程分析/ 196

8.1 Task运行过程概述/ 196

8.2 基本数据结构和算法/ 197

8.2.1 IFile存储格式/ 197

8.2.2 排序/ 198

8.2.3 Reporter/ 201

8.3 Map Task内部实现/ 204

8.3.1 Map Task整体流程/ 204

8.3.2 Collect过程分析/ 205

8.3.3 Spill过程分析/ 213

8.3.4 Combine过程分析/ 214

8.4 Reduce Task内部实现/ 214

8.4.1 Reduce Task整体流程/ 215

8.4.2 Shuffle和Merge阶段分析/ 215

8.4.3 Sort和Reduce阶段分析/ 218

8.5 Map/Reduce Task优化/ 219

8.5.1 参数调优/ 219

8.5.2 系统优化/ 220

8.6 小结/ 224

第四部分 MapReduce高级篇

第9章 Hadoop性能调优/ 228

9.1 概述/ 228

9.2 从管理员角度进行调优/ 229

9.2.1 硬件选择/ 229

9.2.2 操作系统参数调优/ 229

9.2.3 JVM参数调优/ 230

9.2.4 Hadoop参数调优/ 230

9.3 从用户角度进行调优/ 235

9.3.1 应用程序编写规范/ 235

9.3.2 作业级别参数调优/ 235

9.3.3 任务级别参数调优/ 239

9.4 小结/ 240

第10章 Hadoop多用户作业调度器/ 241

10.1 多用户调度器产生背景/ 241

10.2 HOD/ 242

10.2.1 Torque资源管理器/ 242

10.2.2 HOD作业调度/ 243

10.3 Hadoop队列管理机制/ 245

10.4 Capacity Scheduler实现/ 246

10.4.1 Capacity Scheduler功能介绍/ 247

10.4.2 Capacity Scheduler实现/ 249

10.4.3 多层队列调度/ 254

10.5 Fair Scheduler实现/ 255

10.5.1 Fair Scheduler功能介绍/ 255

10.5.2 Fair Scheduler实现/ 258

10.5.3 Fair Scheduler与Capacity Scheduler对比/ 263

10.6 其他Hadoop调度器介绍/ 264

10.7 小结/ 265

第11章 Hadoop安全机制/ 266

11.1 Hadoop安全机制概述/ 266

11.1.1 Hadoop面临的安全问题/ 266

11.1.2 Hadoop对安全方面的需求/ 267

11.1.3 Hadoop安全设计基本原则/ 267

11.2 基础知识/ 268

11.2.1 安全认证机制/ 268

11.2.2 Kerberos介绍/ 270

11.3 Hadoop安全机制实现/ 273

11.3.1 RPC/ 273

11.3.2 HDFS/ 276

11.3.3 MapReduce/ 278

11.3.4 上层服务/ 280

11.4 应用场景总结/ 281

11.4.1 文件存取/ 281

11.4.2 作业提交与运行/ 282

11.4.3 上层中间件访问Hadoop/ 282

11.5 小结/ 283

第12章 下一代MapReduce框架/ 284

12.1 第一代MapReduce框架的局限性/ 284

12.2 下一代MapReduce框架概述/ 284

12.2.1 基本设计思想/ 284

12.2.2 资源统一管理平台/ 286

12.3 Apache YARN/ 287

12.3.1 Apache YARN基本框架/ 287

12.3.2 Apache YARN工作流程/ 290

12.3.3 Apache YARN设计细节/ 291

12.3.4 MapReduce与YARN结合/ 294

12.4 Facebook Corona / 298

12.4.1 Facebook Corona基本框架/ 298

12.4.2 Facebook Corona工作流程/ 300

12.4.3 YARN与Corona对比/ 303

12.5 Apache Mesos/ 304

12.5.1 Apache Mesos基本框架/ 304

12.5.2 Apache Mesos资源分配/ 305

12.5.3 MapReduce与Mesos结合/ 307

12.6 小结/ 309

附录A 安装Hadoop过程中可能存在的问题及解决方案/ 310

附录B Hadoop默认HTTP端口号以及HTTP地址/ 312

参考资料/ 313

截图:

Hadoop技术内幕 深入理解MapReduce架构设计与实现原理

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理