|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》; q2 s' v1 Q, w: p
java电子书推荐理由:由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和Task等MapReduce运行时环境的架构设计与实现原理,最后从实际应用的角度深入讲解了Hadoop的性能优化、安全机制、多用户作业调度器和下一代MapReduce框架等高级主题和内容。- y; Q& B; p% ~+ A
0 s" c. P0 l" I* Q/ x/ t
$ L) b9 M2 S3 ^4 d4 z; a* w作者:董西成 著. Z% {1 I( ]( K# ~6 g' _9 h1 i3 Q
出版社:机械工业出版社
) f g+ M% `5 X7 I3 z: C# e出版时间:2013年05月
5 a/ [2 X# B7 U: a3 s; ~( C3 h- w
% R5 K) ] ~. Z; p: T% p2 j. E
8 M/ d6 {9 |9 x" E* @9 z
8 ?0 }2 g# V8 g f" h
9 M4 [* X0 T" h- Ljava电子书目录:3 l* Y! g3 T, s6 }
第一部分 基础篇
" o/ T, R# O8 G) l% w4 R第1章 阅读源代码前的准备1 x1 K( F4 \4 n3 t! H8 V- _
1.1 准备源代码学习环境' F/ |( s% ^* P
1.1.1 基础软件下载* G8 q2 r9 Q- c7 A
1.1.2 如何准备Windows环境2 a% G6 |" H, n8 M( I
1.1.3 如何准备Linux环境
: d3 X! n. |8 D+ v% p1 d6 I# ~8 ^1.2 获取Hadoop源代码9 D3 m, G# u7 B5 I# D( m5 x3 b
1.3 搭建Hadoop源代码阅读环境' ?1 n& g$ `' ^2 d: B
1.3.1 创建Hadoop工程
2 L* C8 \+ o# o* ]( _1.3.2 Hadoop源代码阅读技巧
6 Z" {" [4 h) W) A8 d5 |5 A1.4 Hadoop源代码组织结构
8 ^; r# K4 e: c. R: K2 L- ]1.5 Hadoop初体验* O& H1 U9 b& J% i7 [' C) t$ A
1.5.1 启动Hadoop
$ `- b% Z `1 Y! Y; [& k1.5.2 Hadoop Shell介绍
. A5 `( H- t! n7 _+ h1.5.3 Hadoop Eclipse插件介绍" H: s/ ]& k0 |4 H; b
1.6 编译及调试Hadoop源代码
/ S4 f+ H1 h# `/ V. R8 H1.6.1 编译Hadoop源代码
: K; ^3 m5 n4 C! Z( t, ]1.6.2 调试Hadoop源代码) ^1 B$ d6 a, i# B* b) H- I
1.7 小结7 J9 [: P/ D8 H, Q
第2章 MapReduce设计理念与基本架构
4 f) Y, ^0 t3 ]% g7 w2.1 Hadoop发展史
, T1 u8 ^$ k. |1 f, @( N a3 U2.1.1 Hadoop产生背景
& y, D7 x8 t! u2.1.2 Apache Hadoop新版本的特性
8 U* \% l! u2 S' T) ^3 @& u2.1.3 Hadoop版本变迁. B* D2 H& F- K4 M {9 ]6 _5 _
2.2 Hadoop MapReduce设计目标/ p4 w9 \% \- l' x) @
2.3 MapReduce编程模型概述
. K" P" F0 o6 ^- r# t! Y$ f5 g2.3.1 MapReduce编程模型简介; Q6 R' s7 ~; a6 P. f
2.3.2 MapReduce编程实例: w$ z v. e" X1 [* Z
2.4 Hadoop基本架构
0 l9 |+ |0 M# ]7 `2.4.1 HDFS架构
1 k; U: w$ q/ D( f2.4.2 Hadoop MapReduce架构
$ G2 `9 Y) J8 \0 ^2.5 Hadoop MapReduce作业的生命周期, Z5 z2 v- ]) M. Z6 U* `. o- [" ?. h
2.6 小结
, F1 ?+ U0 p" d& p! r第二部分 MapReduce编程模型篇+ z' q& a2 v- ^7 z" F
第3章 MapReduce编程模型( b5 {* y: c# j l& a/ `
3.1 MapReduce编程模型概述1 b; _' a2 {1 K# K: X$ Y4 ~ M
3.1.1 MapReduce编程接口体系结构
2 w; K3 N5 ~% V* J, h; I) x3.1.2 新旧MapReduce API比较
- X4 G' x w/ {, K0 R6 p" R0 @3.2 MapReduce API基本概念3 g5 g& P- F, F/ {4 O3 w' v
3.2.1 序列化
) k( q& g" A* H% _2 n1 a3.2.2 Reporter参数
' S) R* Z, y7 R: L! d3.2.3 回调机制/ @8 b, G& ^7 m
3.3 Java API解析3 D6 X- B' W! |; O
3.3.1 作业配置与提交
" r2 O( C" U% C. ]2 Y, O3.3.2 InputFormat接口的设计与实现# z |% b( V2 `
3.3.3 OutputFormat接口的设计与实现: \( `# R; n0 z$ c7 w
3.3.4 Mapper与Reducer解析$ P0 d$ G& x; V3 V
3.3.5 Partitioner接口的设计与实现
s" c) D1 o! z# ]3.4 非Java API解析
6 q, j" S" M0 I0 N3.4.1 Hadoop Streaming的实现原理/ X9 i! U) E, g: g# p3 L6 r
3.4.2 Hadoop Pipes的实现原理
9 N* F" J; w9 W" B. w( x3.5 Hadoop工作流 x% B7 s! ~- h4 p. ^9 P
3.5.1 JobControl的实现原理
, ?3 A7 ]; H' N3 |& r. s. z3.5.2 ChainMapperChainReducer的实现原理& Y# m& K" F4 S1 O
3.5.3 Hadoop工作流引擎5 Q3 X: ~) O5 h' y4 d
3.6 小结
; v" s7 a2 l0 v1 c/ N: h8 A第三部分 MapReduce核心设计篇
. a- G l: h/ M* o第4章 Hadoop RPC框架解析
2 ^+ J# R9 @& R/ Z4.1 Hadoop RPC框架概述
" p' A8 l/ ]4 Z; G4 S: K4.2 Java基础知识
8 E3 ?5 L3 {, S% \4 K7 Q9 |2 }0 \* G4.2.1 Java反射机制与动态代理
( t3 E& x7 \" h0 E/ c4.2.2 Java网络编程
6 T) A3 p1 Y: w( m4.2.3 Java NIO5 E6 T: P" m& o4 u7 m3 G; F
4.3 Hadoop RPC基本框架分析6 w2 T: a" i1 \% |: `$ d
4.3.1 RPC基本概念
8 p. L1 F% u3 p+ m# ?% |4.3.2 Hadoop RPC基本框架* s7 ~+ Q0 Z3 o; B7 h
4.3.3 集成其他开源RPC框架
5 X L* v( T$ }. {6 l/ J0 D: M4.4 MapReduce通信协议分析 i8 z1 i7 q) @# p2 T$ C& K7 @5 }# x8 W
4.4.1 MapReduce 通信协议概述6 o5 S: W9 J4 |( V
4.4.2 JobSubmissionProtocol通信协议9 ^3 f7 I# C+ W; c3 G1 B
4.4.3 InterTrackerProtocol通信协议
: j4 U& [/ h/ G% x4.4.4 TaskUmbilicalProtocol通信协议; N7 G4 @: N7 I
4.4.5 其他通信协议2 u* H% d& e6 w3 O) X; H8 O
4.5 小结
' F' x% I! C& h) l5 v第5章 作业提交与初始化过程分析( i6 \! e2 l- x( G
5.1 作业提交与初始化概述; n+ N) \; h! W4 F
5.2 作业提交过程详解4 v0 ^- k/ ^1 [. c
5.2.1 执行Shell命令
, ]" w- R5 Y: u; a5.2.2 作业文件上传
) [( ?9 s; o( X% c5.2.3 产生InputSplit文件4 P. S6 j$ n4 G7 M; J
5.2.4 作业提交到JobTracker
5 y" F1 T# I5 L9 l1 K5.3 作业初始化过程详解
% }" X- ` R& v- _5.4 Hadoop DistributedCache原理分析
7 a9 w" V; X8 \. s9 ~/ T: i5.4.1 使用方法介绍
, F% }: C5 Y& @+ J# p# N& Q5.4.2 工作原理分析- j0 t7 ]' V# I5 a7 g% q. A
5.5 小结
! v7 W! Q& V% u; M第6章 JobTracker内部实现剖析4 [! W0 y1 H- G/ h% ]7 u
6.1 JobTracker概述
6 {7 u1 u! J# Y! t- k7 p. c$ R6.2 JobTracker启动过程分析
7 s$ ]# a3 S" J( U% @, l6.2.1 JobTracker启动过程概述
& W+ r) o" W( m$ S1 ` A7 g6.2.2 重要对象初始化- ?/ g( E3 l1 {8 g5 o9 a
6.2.3 各种线程功能, z* W: c. w" ~) K/ g
6.2.4 作业恢复# |, n5 P/ ]6 T2 G, D8 _2 y& s
6.3 心跳接收与应答
3 r8 ^& m7 P I3 U6.3.1 更新状态5 C% H% G" v" j1 X- N
6.3.2 下达命令6 C$ B* `; a' r0 M( h6 X$ u
6.4 Job和Task运行时信息维护/ y6 y" n$ U7 D/ \( }9 X
6.4.1 作业描述模型9 v* J; R+ [. F1 O$ t
6.4.2 JobInProgress
# n4 V6 V8 v7 t7 R/ y0 J% C6.4.3 TaskInProgress" B O2 m2 ~9 g
6.4.4 作业和任务状态转换图5 _- }2 x* o, E1 J% ~' B! B" u/ e
6.5 容错机制
+ a/ u" X2 Z. _$ ~/ Y5 y6.5.1 JobTracker容错" K8 B5 p# y" ~% }' E9 y
6.5.2 TaskTracker容错. {6 p8 F0 V% X I+ {: {$ b
6.5.3 JobTask容错7 i9 j! X" {, o- ?0 {# I7 k
6.5.4 Record容错3 T$ \6 Q- s: {' e, T* A/ ~
6.5.5 磁盘容错
) [+ Z2 T! X( _- s: t1 j+ M: R' V* S6.6 任务推测执行原理
/ O; e' v% y- O) }9 v6.6.1 计算模型假设
8 b$ Q9 E3 T; D- D' P0 d5 h6.6.2 1.0.0版本的算法
$ }! D" r/ c8 a b( B9 {6.6.3 0.21.0版本的算法 J: Z+ q- d' i) o6 l" K
6.6.4 2.0版本的算法8 _. @$ a$ H! w# h9 D9 i( |
6.7 Hadoop资源管理
- ^' L: s# o0 R5 |6.7.1 任务调度框架分析
" |9 N! p* E8 Q7 X' p+ k+ S6.7.2 任务选择策略分析1 o5 Y4 t" J% b
6.7.3 FIFO调度器分析/ ~ B. e$ f* j$ J$ i
6.7.4 Hadoop资源管理优化
% z1 m' ? ^' T) `6.8 小结
6 D; Y2 p( T- Z U7 E第7章 TaskTracker内部实现剖析. ]! {& g* D( V) ~0 i1 u6 f& E7 {
7.1 TaskTracker概述8 w/ F# j+ v+ [8 B' T# S/ D( w4 y
7.2 TaskTracker启动过程分析
2 i/ C5 I# ~, E/ L* r4 d7.2.1 重要变量初始化
6 `8 P8 b& v j2 I1 G K7.2.2 重要对象初始化
1 _* Q7 }5 j+ r0 c6 E+ _ e# e7.2.3 连接JobTracker4 t9 |0 h1 j" Q
7.3 心跳机制, c7 Q6 ^0 }8 x* j% t7 z2 ^
7.3.1 单次心跳发送
1 }" `" e, M7 h9 c- w5 |$ y5 g7.3.2 状态发送1 @0 R C. M- E4 n8 i8 Z
7.3.3 命令执行
' N" T, \/ L4 g# S7.4 TaskTracker行为分析
8 G6 F$ o$ ~/ m# P, D" V1 h7.4.1 启动新任务
: r8 o7 v; ]: Q/ n7.4.2 提交任务
& P5 `1 s! {1 F B. i) Z) v7 k7.4.3 杀死任务
% S8 n* Y/ V! l! W7.4.4 杀死作业
' m, b/ ]" v _' S, _) N7.4.5 重新初始化
$ G; j* N K4 Z/ l& u7.5 作业目录管理
7 ^* d. \( M" ]1 v7.6 启动新任务/ {3 S. Y* @& F% E% i; E
7.6.1 任务启动过程分析
( m8 K* ?* d9 t# Y7.6.2 资源隔离机制
* F; f# r8 a' K9 b7.7 小结
0 ?) f3 I( _( H! G第8章 Task运行过程分析) j+ V$ e$ L# i
8.1 Task运行过程概述
d; X6 U8 b V4 Q+ i1 S8.2 基本数据结构和算法
; `2 Q) f1 }0 T" \8.2.1 IFile存储格式
6 @7 u" {1 L+ O p( R" F! O8.2.2 排序
* {+ e9 H. l$ o8 M3 e H( n; s$ v8.2.3 Reporter0 F# {2 C. Z/ ~+ x e( K
8.3 Map Task内部实现1 r9 w+ n+ k0 }0 F' y
8.3.1 Map Task整体流程
! @7 S- D; \6 Y+ O8.3.2 Collect过程分析
( [3 ^9 s0 f/ E9 d6 z1 C8.3.3 Spill过程分析
1 p6 n3 Y2 J5 k0 }* k/ D8.3.4 Combine过程分析
6 e7 r0 g$ [8 K$ |) W: K8.4 Reduce Task内部实现! A2 Q6 ?$ J" v" `4 g' P
8.4.1 Reduce Task整体流程/ ^" H# H" ~5 A; K- X+ q
8.4.2 Shuffle和Merge阶段分析
0 t: @/ g, k; q% D, @& U7 P% \! o8.4.3 Sort和Reduce阶段分析- [! c9 W" o: {; ~- a
8.5 MapReduce Task优化- C0 s4 }8 ~9 L+ Z; N9 C" t/ t/ M
8.5.1 参数调优
: \- r2 a n+ P j- N8.5.2 系统优化. q3 [+ t: L3 |6 p3 d p, }) a
8.6 小结' G6 p; [7 ~* t0 T' h7 h7 Z; z
第四部分 MapReduce高级篇% ^. `$ T5 s; V+ L0 V
第9章 Hadoop性能调优5 w5 j8 A* \+ l0 a! ]
9.1 概述
" }6 Z D: N: O0 ?- T; M9.2 从管理员角度进行调优$ q1 y/ r( s9 V( Y: W/ N
9.2.1 硬件选择
r/ O- G/ e6 g" O9.2.2 操作系统参数调优' {7 ?6 K6 c! n
9.2.3 JVM参数调优
- V3 J9 B; J H2 K; o9.2.4 Hadoop参数调优% C/ e( Q( `! W. L: T
9.3 从用户角度进行调优
9 M( y# }5 Y- E2 S/ I9.3.1 应用程序编写规范
! `% g: B3 r" ^8 }; ?+ B9.3.2 作业级别参数调优" S) ?. R. l E# z
9.3.3 任务级别参数调优
, F# N% b! @: S) F9 f9 I9.4 小结. }) G- i, {: H' K% I1 T' w0 R0 ^
第10章 Hadoop多用户作业调度器
: v' @* ~$ \$ K2 i10.1 多用户调度器产生背景
+ ^! G: [$ f) `( J% D10.2 HOD! h( ~ u5 F# ^5 {
10.2.1 Torque资源管理器
( d, U- Z% |8 L; G1 ?7 }) y10.2.2 HOD作业调度
, r: i0 y3 E r5 J2 b, }4 G; ^10.3 Hadoop队列管理机制, W+ i- \9 v% I8 u$ L: \; G n' }
10.4 Capacity Scheduler实现
" s5 _( @3 P( v10.4.1 Capacity Scheduler功能介绍
" D4 N4 n- ^0 p6 ], k4 ~10.4.2 Capacity Scheduler实现7 `8 G* J2 {' Y7 i. F
10.4.3 多层队列调度
8 c7 n: V% l }1 Y/ z; S6 ?2 m10.5 Fair Scheduler实现) i7 i# ~$ x8 E. U* p
10.5.1 Fair Scheduler功能介绍/ E4 P4 ~" s% Z$ e) ?0 x
10.5.2 Fair Scheduler实现 t" z% T' h+ l. {! S$ c
10.5.3 Fair Scheduler与Capacity Scheduler对比
3 g( X5 w5 E/ Q10.6 其他Hadoop调度器介绍# C" \ [- }) _" `
10.7 小结
. X! G/ j/ g% b- C: \第11章 Hadoop安全机制
! s4 ~; S2 I' O- B( z11.1 Hadoop安全机制概述5 T$ G0 J( k; a/ g. @; c. u; y
11.1.1 Hadoop面临的安全问题* B% c* `* e, l" [0 D) U
11.1.2 Hadoop对安全方面的需求
6 ^6 Z6 V+ `3 g' g8 V7 n5 S. D) C11.1.3 Hadoop安全设计基本原则
( w' y6 K" r# x$ [11.2 基础知识2 p( P+ [; T2 f) `
11.2.1 安全认证机制
' V6 k ~: Y! z$ F5 o' P' ~11.2.2 Kerberos介绍
7 I# U. h ~* O7 t11.3 Hadoop安全机制实现
! v D: i0 {' i8 t% w: l! c: p8 P11.3.1 RPC2 Z" g: T% W# f0 Z3 M. P4 H: O8 X
11.3.2 HDFS( i+ x0 I% h' i4 [$ Z8 m# ` U
11.3.3 MapReduce
' M! q7 Q3 o# x3 r5 c11.3.4 上层服务8 N5 m9 }1 Z g4 p) Y& e1 K
11.4 应用场景总结
& o- U3 K( L6 S3 Y11.4.1 文件存取
: g7 h% N$ }4 w, S* T# f( f11.4.2 作业提交与运行
: f! q: x& F/ G M: W2 U11.4.3 上层中间件访问Hadoop
& z7 b }' W, i9 k& u+ O& ^+ G* C11.5 小结1 _8 N8 P+ ] d
第12章 下一代MapReduce框架
/ I1 H* p8 ^+ _' K12.1 第一代MapReduce框架的局限性 s! s8 w8 Z2 }* k
12.2 下一代MapReduce框架概述 H$ ]5 Q" Q- a7 F$ ]+ g
12.2.1 基本设计思想1 K8 D1 b7 w( V* \( Y
12.2.2 资源统一管理平台. ]# [5 N8 L8 [) s2 R3 K
12.3 Apache YARN0 \; V- Y4 b. B @& r
12.3.1 Apache YARN基本框架8 R |$ _& Z, M- Q `7 K5 b& p3 c
12.3.2 Apache YARN工作流程
N0 s2 N, P1 K! o2 u12.3.3 Apache YARN设计细节
. Y1 `7 v6 X- i12.3.4 MapReduce与YARN结合8 |4 X9 B$ S9 {9 p/ c
12.4 Facebook Corona, |9 `, W# M% n, W) `! `
12.4.1 Facebook Corona基本框架
' b6 [% e; b! X) x12.4.2 Facebook Corona工作流程* d/ R1 y" M7 k7 {; G+ B
12.4.3 YARN与Corona对比
' z; V) d0 l+ V4 J y12.5 Apache Mesos
$ u& p; ?7 l6 ]7 S12.5.1 Apache Mesos基本框架5 r6 o' q: s, K3 H6 L3 b
12.5.2 Apache Mesos资源分配
+ |# X" q$ Y8 `12.5.3 MapReduce与Mesos结合 ]- @* S* M7 i( E7 ?3 |5 g0 `
12.6 小结( `6 Q7 {7 v ^& Z. t* t# K
( \4 q, T" M* O7 w+ w电子书优惠获取地址:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》
- R- l9 c2 y! a: ?: r4 y6 |: ?8 m/ t2 B6 Z$ T4 o2 Y0 P9 e) B
, V2 p% ~- G3 g- S) \2 L( ^
0 M1 B! r( e" ^7 I& F4 W9 l) T
|
|