|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》
' c0 k; m5 \! z `java电子书推荐理由:由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和Task等MapReduce运行时环境的架构设计与实现原理,最后从实际应用的角度深入讲解了Hadoop的性能优化、安全机制、多用户作业调度器和下一代MapReduce框架等高级主题和内容。
1 }0 `( k* O! e$ R+ f# a- a+ r) n
) f5 L' {8 W$ k4 @, b: G2 X% `3 z8 ?5 S+ p8 W7 V
作者:董西成 著
5 S6 k* l; `, ?: R4 R) s出版社:机械工业出版社
1 _/ }9 V8 w# s% A4 ] O出版时间:2013年05月
1 ^% h& ]) m, R V( J7 I( {# l4 ]4 T: `
& N( m F, T) T+ `! V2 n: Y
/ g! M$ |: b7 ?, S0 [
3 _8 x5 D' K( c/ L: R
) ~$ y6 K W! z5 d& h( \java电子书目录:! {' _3 Y( R/ J3 _$ r
第一部分 基础篇6 E/ D7 [# M v/ \) B6 ~' {
第1章 阅读源代码前的准备
4 |* ^- V' }6 E* ]1.1 准备源代码学习环境3 t" i8 u( |, t; ^& b# {5 x
1.1.1 基础软件下载
* e8 [9 j, ^8 ~* E# l2 g( D% y1.1.2 如何准备Windows环境
& y* t1 t0 l7 `9 j* r2 M& U1.1.3 如何准备Linux环境
3 H9 w- c- T5 d3 y- Y; G! F1.2 获取Hadoop源代码
3 v8 \$ Z. Z" x8 O/ m& t1.3 搭建Hadoop源代码阅读环境
& J4 m9 ]8 R( [. `' g6 v5 p1.3.1 创建Hadoop工程
% P1 P, e5 P8 x- p1 A+ N; w1.3.2 Hadoop源代码阅读技巧
# A' q+ I" `/ a) L H1.4 Hadoop源代码组织结构
; e5 v- ]; M* {8 Q, l: T. W% N1.5 Hadoop初体验
9 y; `4 A& }, D0 t" l1.5.1 启动Hadoop4 D5 M0 z j6 z* c% t& i" W
1.5.2 Hadoop Shell介绍3 q& Q# A/ H$ ]
1.5.3 Hadoop Eclipse插件介绍
) |2 i9 O# N) Y, n& q) S1.6 编译及调试Hadoop源代码
G4 V8 q Z1 v, Z1 J1.6.1 编译Hadoop源代码/ G! R5 x# H6 f0 D7 ^- E
1.6.2 调试Hadoop源代码6 y/ b1 T2 ^" K, t
1.7 小结
. }) P; X( Q8 R4 J- S% t8 F0 d第2章 MapReduce设计理念与基本架构# e8 [3 d$ z( W5 d/ w; H4 \0 }
2.1 Hadoop发展史
* k3 J8 I$ f# c: x' V2.1.1 Hadoop产生背景
8 }, j( b1 N @; Q/ l3 d2.1.2 Apache Hadoop新版本的特性9 l! l% D2 {# C6 u# f
2.1.3 Hadoop版本变迁1 O7 F/ c; L' C5 _8 Y7 J( K
2.2 Hadoop MapReduce设计目标# Y( ?2 v/ ~. A
2.3 MapReduce编程模型概述
1 D5 x+ p3 J( Z* z! x/ i/ E/ O' `2.3.1 MapReduce编程模型简介
7 A4 O/ y" c6 t) {0 p' O# j0 ]% _2.3.2 MapReduce编程实例7 \! q. T% q' F6 f: Y" f
2.4 Hadoop基本架构1 f9 M! F- k3 i6 H8 o( e0 J
2.4.1 HDFS架构
6 b4 p# g% I5 _% }% I0 o4 l2.4.2 Hadoop MapReduce架构( G# n; a/ z& \' w( f0 z; {
2.5 Hadoop MapReduce作业的生命周期0 Q& `* f) w9 U: g- j% W" n
2.6 小结
1 z2 ~7 S @4 _; H7 n; p$ s第二部分 MapReduce编程模型篇* n; ?. t& d% W% Z% j
第3章 MapReduce编程模型
" x6 y# E @8 e1 u3.1 MapReduce编程模型概述; `* E& u3 @5 J- U
3.1.1 MapReduce编程接口体系结构7 C- F; L2 l. g
3.1.2 新旧MapReduce API比较
6 }& ]$ l! ~7 e2 W3.2 MapReduce API基本概念
5 W) a/ c/ x: x0 w7 H) m3.2.1 序列化
& h4 r3 c0 ~9 i, ?" e+ k3.2.2 Reporter参数( S4 A* T0 _5 t; V# A/ T/ ^' K
3.2.3 回调机制$ k, i3 C# q" F% h
3.3 Java API解析4 B! q* u0 o8 e& c. F. B) w
3.3.1 作业配置与提交
) h; l0 t2 z+ ?3.3.2 InputFormat接口的设计与实现/ y4 U, f) a4 n, @7 h% q/ S
3.3.3 OutputFormat接口的设计与实现# e0 p" X! n9 i( x6 e) T& o7 l
3.3.4 Mapper与Reducer解析
% z, r+ @& [/ n; p3.3.5 Partitioner接口的设计与实现3 J) j' [# t' K* ^' `$ ?
3.4 非Java API解析
( i* v0 ` Z% ~# g s3.4.1 Hadoop Streaming的实现原理6 U/ Z& N+ {2 M4 Q# S% y
3.4.2 Hadoop Pipes的实现原理
' l8 f% F2 W/ B, h, C0 K+ @( j# v3.5 Hadoop工作流
0 r8 y& }* t" H' A3.5.1 JobControl的实现原理$ K$ S0 W- Q. H% U1 X
3.5.2 ChainMapperChainReducer的实现原理
7 c5 y( ]( @ k: r9 f3.5.3 Hadoop工作流引擎
. G3 x" |$ V; C1 k. `/ E3.6 小结, i$ K# R" R m3 D0 X% o( @$ |, N
第三部分 MapReduce核心设计篇
' v; H8 v4 m) @( p第4章 Hadoop RPC框架解析8 T3 o: c2 _4 X" `9 D6 p. ]: M
4.1 Hadoop RPC框架概述
( L8 t; p8 s; ]" X4.2 Java基础知识
9 @/ m1 ^, F- F3 j+ ^$ V4.2.1 Java反射机制与动态代理 u& t" o# S4 _- w8 T
4.2.2 Java网络编程8 X5 U A7 I' Q. m0 u1 I l
4.2.3 Java NIO3 Z1 ~. M' q+ ~7 o2 \( s' J
4.3 Hadoop RPC基本框架分析* h1 b/ s1 e7 K* ?
4.3.1 RPC基本概念2 [ ]8 _9 P' i. z4 J: }& y
4.3.2 Hadoop RPC基本框架7 q# z& l( A' ~4 E2 x
4.3.3 集成其他开源RPC框架
/ c. f, ]5 r0 e4 _/ W4.4 MapReduce通信协议分析
, r% f' B2 e: g5 F" N8 b4.4.1 MapReduce 通信协议概述3 x2 X' d0 [3 k1 ^. \, j( |$ A
4.4.2 JobSubmissionProtocol通信协议
! |) [7 F' `; {8 M6 [4.4.3 InterTrackerProtocol通信协议
- F( E+ @' m) F( [- T5 o4.4.4 TaskUmbilicalProtocol通信协议
9 O5 B5 l" X$ R/ Z4.4.5 其他通信协议
. `5 h+ w! k# C+ @8 U4.5 小结/ o* Q( V+ M p) W
第5章 作业提交与初始化过程分析9 f+ ~( j6 G9 y; ^+ U2 l2 N
5.1 作业提交与初始化概述
% N! ^* }$ D- Q4 Q# R9 {+ s* q5.2 作业提交过程详解
2 Z* a4 T" X2 y* n+ w& Y5.2.1 执行Shell命令8 C* F8 ^1 Y/ i$ k6 @& Q2 G$ i
5.2.2 作业文件上传
. X) A) E( n1 R5.2.3 产生InputSplit文件7 y2 C# H" A$ N- h, Q; V K- A
5.2.4 作业提交到JobTracker
7 w, R3 B i- R" x0 y5 l& }5.3 作业初始化过程详解
* R" a( n8 ^; y4 E! x5.4 Hadoop DistributedCache原理分析7 { K2 X; `/ l0 T% M7 p
5.4.1 使用方法介绍
4 Q5 H- H0 z. S( _7 j5.4.2 工作原理分析) V3 V2 U3 {' r, [6 l6 d8 o/ i" D
5.5 小结
, _! ^3 J5 l' Z j: N `2 ?7 P% r4 w第6章 JobTracker内部实现剖析# Y9 `5 W* v. f7 c3 ^: m# E t
6.1 JobTracker概述
L) I4 t% L% P' Y6.2 JobTracker启动过程分析, p$ _, f0 e) m
6.2.1 JobTracker启动过程概述
1 I9 ?# \0 K l% N6.2.2 重要对象初始化
' a3 ]' p4 P# b! n6.2.3 各种线程功能
, R! W2 {/ ~4 r$ \3 C6.2.4 作业恢复( Q8 i4 M' M0 _" ~/ y) D% E
6.3 心跳接收与应答* g! P' o% W/ h+ a
6.3.1 更新状态6 z5 j# v! j% @- @( L! K1 j
6.3.2 下达命令* m# `2 ^4 p+ x* v* k
6.4 Job和Task运行时信息维护
; L' U$ J8 `4 r5 `' m' x6.4.1 作业描述模型6 I1 d/ }+ {! u- r0 j
6.4.2 JobInProgress) m3 q7 J+ f V
6.4.3 TaskInProgress' Q) F7 n. v/ E& ~! {# n+ T
6.4.4 作业和任务状态转换图9 H2 p. p1 d$ A- n
6.5 容错机制
6 B& i* L% U" Y8 @$ F: j6.5.1 JobTracker容错
$ \! U5 \: R1 f- P' x9 \6.5.2 TaskTracker容错
, Q' s% l$ R/ g/ j) e/ k0 |7 Y8 P6.5.3 JobTask容错% o0 C1 N( }4 ?( ]- I8 K
6.5.4 Record容错
; I. y# s1 V: \% N M) J6.5.5 磁盘容错8 q2 ^) ~& i1 C4 _3 f
6.6 任务推测执行原理
$ V; u7 q; o: M5 H8 J# G7 v8 ~6.6.1 计算模型假设
5 _) T8 H* {; ?- l9 f6.6.2 1.0.0版本的算法4 K+ l! ~) s/ t6 F' u3 f1 L
6.6.3 0.21.0版本的算法5 ~' N3 n; i. u' ]
6.6.4 2.0版本的算法
4 } N8 q" i* v: B6.7 Hadoop资源管理# k. _3 ^6 j- c" F- `/ f+ ?
6.7.1 任务调度框架分析6 F; J1 ^( ?+ x) i8 U- V, o
6.7.2 任务选择策略分析
3 ]! P" @, j, C2 @; ~/ l6.7.3 FIFO调度器分析
& T/ N4 _3 Q7 ^4 b: [6.7.4 Hadoop资源管理优化
, q8 F. k' `2 t9 `! G& G+ M6.8 小结5 P7 L+ M$ |: N7 ^: n
第7章 TaskTracker内部实现剖析
; I( {7 @8 Q5 M7 d1 G. m# A7.1 TaskTracker概述
: `9 l( c; I0 ~+ C+ Z% f% W% C. n7.2 TaskTracker启动过程分析2 R8 v5 |; ^0 q+ n2 J
7.2.1 重要变量初始化
6 x. l4 W7 I/ a0 t; B# w2 v! o7.2.2 重要对象初始化
) E" I! j6 k" r7 m3 ^7.2.3 连接JobTracker1 o2 e. V+ B& |/ L3 @7 O: @% s
7.3 心跳机制7 e' l% ~. b/ _" T
7.3.1 单次心跳发送. U8 w4 t! A4 A5 C1 `7 U) M) Q2 o
7.3.2 状态发送& W A$ q$ N7 `% d; D0 D
7.3.3 命令执行
$ N1 Q. s# `$ U& f+ s. u0 C7.4 TaskTracker行为分析, o$ m5 ~3 ~6 N J7 n: D1 Y
7.4.1 启动新任务
7 a/ R7 `6 E+ o5 I) q3 p* R6 R+ H) t7.4.2 提交任务
" O8 E; C# g+ W# J, I7.4.3 杀死任务& F! n1 T* t( J% `: ~- Y d$ Y9 A
7.4.4 杀死作业
" v) @4 m. m) h; O7.4.5 重新初始化! H1 K) B: m3 S! z) Q/ Q: A
7.5 作业目录管理
2 u9 i% s/ b( G- R# Z7.6 启动新任务! W4 L5 v9 H, ~1 |
7.6.1 任务启动过程分析
8 R, c- ?! s! {- \" [+ ?- `* @7.6.2 资源隔离机制9 l8 w2 H2 U+ C
7.7 小结& F3 k+ p: S! }9 @7 w7 N
第8章 Task运行过程分析/ c6 x) |: }; a! ]2 M% \# c
8.1 Task运行过程概述# z5 P) J. z: z; I/ C) T ~$ l2 h
8.2 基本数据结构和算法
8 Q. `! E7 ^. ^; f8.2.1 IFile存储格式
0 L, z/ g+ L2 d" H1 e& {3 ]8.2.2 排序 }: M" v$ e o$ S# K# o1 z9 A$ m
8.2.3 Reporter
0 q4 P1 G3 R. Q( ^, N1 }- J( U8.3 Map Task内部实现2 e3 i" J/ `0 _( L$ d+ y
8.3.1 Map Task整体流程
' a+ e5 z9 Q' r3 X: M5 ~% e% g8.3.2 Collect过程分析
; N. r; T% W% Q; P; e/ x8.3.3 Spill过程分析
$ A* C2 u; U1 [) l; C8.3.4 Combine过程分析4 ~3 W" Q+ s1 W3 B4 a9 S/ f+ Z3 \% |
8.4 Reduce Task内部实现0 G. ]/ ^* c7 J% p3 H( O% Q7 m; B
8.4.1 Reduce Task整体流程& R1 V+ B4 W; P2 e* g3 h: R
8.4.2 Shuffle和Merge阶段分析' o- N8 i" D3 L$ P: f% Y: y% q/ O
8.4.3 Sort和Reduce阶段分析
' E+ }4 c; o. O9 M# D9 M6 S8.5 MapReduce Task优化
M5 R" c, _+ l/ a8.5.1 参数调优" V8 @7 [( W$ ]* M
8.5.2 系统优化; D( X4 y% F" X$ M, o
8.6 小结
. p$ i$ F; f6 }9 V第四部分 MapReduce高级篇
1 O3 G0 A2 m$ {; J& H第9章 Hadoop性能调优8 l" ^6 n6 |) E3 i' f( J7 V
9.1 概述
8 M" x6 b+ h1 g, w9.2 从管理员角度进行调优5 q! j" T( q/ W0 O2 Z6 r+ h
9.2.1 硬件选择
" O' o- L f! o8 o5 d; f9.2.2 操作系统参数调优
$ X) ^3 N$ M/ Z& z2 a- I9.2.3 JVM参数调优
+ e" C' Z4 g& }5 w, T- u9.2.4 Hadoop参数调优
: ?6 p6 V: M" n9 A9.3 从用户角度进行调优7 g! G' y7 H, d& v- Z8 y
9.3.1 应用程序编写规范 Q; c& B' u) l% m7 j& J5 [
9.3.2 作业级别参数调优6 ]* }$ m* Y+ u+ t) W" |4 T- G, a9 O
9.3.3 任务级别参数调优7 k. l6 b& K$ j6 \2 ?
9.4 小结
, C4 x. D3 U5 Q5 Z1 H: J4 a4 f# w第10章 Hadoop多用户作业调度器
& c8 o1 S9 a- T h10.1 多用户调度器产生背景
) ~/ N7 a5 l. O10.2 HOD3 v1 X6 {* z) b- C+ n
10.2.1 Torque资源管理器% q( S3 A& W+ F) t" }
10.2.2 HOD作业调度9 J2 t% X4 L7 k
10.3 Hadoop队列管理机制
( ?9 {, w; \3 G! R( R% ]8 z10.4 Capacity Scheduler实现
5 A- Y7 s2 P5 B6 ?* A! y10.4.1 Capacity Scheduler功能介绍! y+ e6 V+ g" Z: F8 K" E
10.4.2 Capacity Scheduler实现) ~) N {" n( _) Q* o
10.4.3 多层队列调度* g, V1 i2 W! O3 v2 X
10.5 Fair Scheduler实现% l6 t) A7 [5 U3 v
10.5.1 Fair Scheduler功能介绍
1 l" x( J1 f9 p1 p( E. W# y10.5.2 Fair Scheduler实现& I6 A" b2 H/ l5 G
10.5.3 Fair Scheduler与Capacity Scheduler对比
! I6 O0 o8 A( G, V10.6 其他Hadoop调度器介绍
+ k1 k1 r- i, G" I10.7 小结* ^; R' V/ V6 Z% w l4 j
第11章 Hadoop安全机制
( o" i( K. v* \5 S11.1 Hadoop安全机制概述
0 I! @0 E$ K2 p& I11.1.1 Hadoop面临的安全问题
R5 ^, c1 M) d5 Y11.1.2 Hadoop对安全方面的需求- c( g H( y7 l8 Z" i
11.1.3 Hadoop安全设计基本原则
4 Z. C- X2 K8 ?9 _( Y+ u. R; B% j+ D11.2 基础知识
- M" U! h9 B q1 t& a& J* R# [11.2.1 安全认证机制
5 P4 I! _# [! J5 a5 b/ s11.2.2 Kerberos介绍
1 J( |, _( J, M11.3 Hadoop安全机制实现0 O/ L. s* U- u7 |: T; P
11.3.1 RPC
4 U- Z+ z3 ~2 K9 \1 q11.3.2 HDFS4 p1 z/ i! j# N1 }4 N8 R
11.3.3 MapReduce
- O6 o2 C, P Z, |! c2 z3 G11.3.4 上层服务 |& L$ \5 Q% g& F' M( \; N
11.4 应用场景总结
- U+ [, V! n3 v1 X11.4.1 文件存取. g5 l% A! L- W7 l
11.4.2 作业提交与运行
8 Z) ]) r; [5 T2 W2 f11.4.3 上层中间件访问Hadoop
% T3 X( P4 j: o5 V11.5 小结$ H% z1 W7 X$ K6 v
第12章 下一代MapReduce框架
1 y- L- U% o9 Q5 V4 }12.1 第一代MapReduce框架的局限性/ Y j' E2 O4 E7 G0 c$ f
12.2 下一代MapReduce框架概述& l: N4 R/ P- i3 Y8 q2 c
12.2.1 基本设计思想9 M' B- K, e- A; C" _7 R; |1 ^. s7 c
12.2.2 资源统一管理平台
6 m; I0 Z1 @6 w2 H7 Z12.3 Apache YARN' S; I, H5 l1 d7 r" F' x5 e0 J
12.3.1 Apache YARN基本框架
% G% h4 _9 w7 P8 @" ^6 e* F12.3.2 Apache YARN工作流程; o3 P# `' i N
12.3.3 Apache YARN设计细节
2 i0 G7 N8 s1 T( P' z' m$ `" l/ X12.3.4 MapReduce与YARN结合, f# u( T4 b ~% E0 k4 o, Q% i) f
12.4 Facebook Corona
& r0 W0 Z& ]* H12.4.1 Facebook Corona基本框架# g X1 r5 o$ B- \; \8 }6 }
12.4.2 Facebook Corona工作流程
7 P* v J8 q1 V* H* F" a12.4.3 YARN与Corona对比; F! r- u& V" ` K, Y8 x
12.5 Apache Mesos
2 Q& T& O# a2 C) T12.5.1 Apache Mesos基本框架/ K) M Y% X' |4 x f( a
12.5.2 Apache Mesos资源分配 d) T/ `& @0 n/ f$ e
12.5.3 MapReduce与Mesos结合! z: T% w( t) ~( k
12.6 小结
: P$ {5 O. Q- {5 ?/ U' B9 S7 H+ I, \9 k
电子书优惠获取地址:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》7 S) s5 R, z3 T7 B
7 a5 c; }! \, j+ ?/ j' n! V* |$ s& [* v
8 b$ L/ s$ p8 ]
|
|