0%

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

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

链接: https://pan.baidu.com/s/16DxrvNwDO6FIQnU1GApa4w 提取码: wfks

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333

目录

前 言

第一部分 基础篇

第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 操...


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------