|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》. S# N& n) y! Q) P. ^3 {
java电子书推荐理由:由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和Task等MapReduce运行时环境的架构设计与实现原理,最后从实际应用的角度深入讲解了Hadoop的性能优化、安全机制、多用户作业调度器和下一代MapReduce框架等高级主题和内容。! ~4 c: m$ }+ s+ x# H& y3 N$ Q
, R0 J' ^5 q- P3 a
5 p7 r4 r* p, u" g0 U0 L作者:董西成 著
@1 p2 B* c1 @# B4 p出版社:机械工业出版社
8 X4 Q+ Q- \' l$ y' t& G; Q出版时间:2013年05月 2 k8 h- @. Y5 f& `: l3 `
) y3 ?" O& P1 A6 I! z
" c0 u" H7 R, n
5 h' `0 l( S4 L5 R/ } _ N. H
# ?" [% ~& ^+ x4 D0 f
z* h% `, R1 B2 m0 sjava电子书目录:" v: ~( T; m" V: |2 ^
第一部分 基础篇
' |& L& W. ?( I9 x$ S5 e% P1 i第1章 阅读源代码前的准备
6 Q/ y% N- N; |. X9 K1.1 准备源代码学习环境
$ J# w0 ]$ y8 w1 P% n) O1.1.1 基础软件下载
& O3 t, M8 ~) v0 }+ ~& p- r# T4 [1.1.2 如何准备Windows环境# @! Z) m0 N0 [; W" v1 a0 n# d* ]
1.1.3 如何准备Linux环境
& B' G$ f* p9 y/ Q/ L; R1.2 获取Hadoop源代码" w& x4 H/ s$ Y* m
1.3 搭建Hadoop源代码阅读环境
; Q. e6 D! S9 P) X: @7 X! y2 H1 z1.3.1 创建Hadoop工程
/ Q |& H' f* s1.3.2 Hadoop源代码阅读技巧' c9 i$ ^7 e7 b3 U1 A, N, U2 }$ y8 s
1.4 Hadoop源代码组织结构$ e3 {; p- o4 j# R) A: X
1.5 Hadoop初体验
" [8 A$ L, Q& W2 c1.5.1 启动Hadoop
9 d0 d! ^$ _( W; r: W! X" F1.5.2 Hadoop Shell介绍: O, L: K1 J7 l
1.5.3 Hadoop Eclipse插件介绍( K$ `: R0 {) \" b' r% |$ A" D7 x
1.6 编译及调试Hadoop源代码! ~2 w- l8 B( {
1.6.1 编译Hadoop源代码. m0 b% S/ d7 ~. [1 i- V, _
1.6.2 调试Hadoop源代码4 K0 K7 S0 d1 g3 f W4 a0 x) e
1.7 小结2 h! u* o, U: Q) h& E" T
第2章 MapReduce设计理念与基本架构" N/ f" j7 I/ D( @' i# R; c
2.1 Hadoop发展史
5 t. v A# x; ^2.1.1 Hadoop产生背景& x3 C2 |3 R; h1 Z
2.1.2 Apache Hadoop新版本的特性
* S- H5 ~+ K- c2.1.3 Hadoop版本变迁
5 Y- C: M7 T4 |1 M2 \2.2 Hadoop MapReduce设计目标
) {+ O( r6 F. y- w Z: _2.3 MapReduce编程模型概述% m5 F0 \, \: y# a" N4 G2 T
2.3.1 MapReduce编程模型简介- X0 R4 r9 ~) I5 S, L* F) \3 R
2.3.2 MapReduce编程实例
0 c' L Z; H6 }) B: I _4 e2.4 Hadoop基本架构
; p( { m& G# Z( ~4 F9 Y! j0 H" t2.4.1 HDFS架构
7 Z$ C) V1 g) h4 u2 l2.4.2 Hadoop MapReduce架构
; y8 R1 b3 f( b2 O5 Z. B! M2.5 Hadoop MapReduce作业的生命周期3 G3 n" }1 s c( V" j, L" V7 W
2.6 小结" s2 ]+ G i6 y# C: ]$ r
第二部分 MapReduce编程模型篇" A- K, ?( C9 A) @
第3章 MapReduce编程模型
5 q, y% d- E0 S6 A3.1 MapReduce编程模型概述
. G: d0 q3 q5 L9 Z3 N% U* ?# }3.1.1 MapReduce编程接口体系结构
3 M9 A$ L8 s/ z8 ^: u( `4 e3.1.2 新旧MapReduce API比较
/ T% p2 s1 M6 g* u) t1 t3.2 MapReduce API基本概念* ]; T8 |- [8 ~% {
3.2.1 序列化 Q" H8 s+ a: A- p; X& K
3.2.2 Reporter参数
2 d& ~/ t! L- R) D+ P$ J7 I/ o4 f3.2.3 回调机制
% Q" d `/ ~6 N: }$ C( a+ W$ w; a3.3 Java API解析
7 x- x0 C1 |& g2 x& r/ ~3.3.1 作业配置与提交2 ]' R, q" T2 @" M5 c
3.3.2 InputFormat接口的设计与实现7 b$ V1 v) w$ Z! a0 `" u
3.3.3 OutputFormat接口的设计与实现
Z/ [ d9 k% x' a2 h3.3.4 Mapper与Reducer解析) M+ v) L$ m- {' U5 q
3.3.5 Partitioner接口的设计与实现7 J% h0 y3 c3 N* N) C0 B
3.4 非Java API解析7 V9 J; C h' e, k- S! h; D
3.4.1 Hadoop Streaming的实现原理% o# e4 g5 N. u5 }& u
3.4.2 Hadoop Pipes的实现原理
( V4 Z! O% u( e) n% [6 r" H( K3.5 Hadoop工作流
1 K' p2 Y0 o! O3.5.1 JobControl的实现原理: D+ u2 g; E t4 h' Z% a* }$ }8 a
3.5.2 ChainMapperChainReducer的实现原理4 L* {" u) X" M! Y8 b/ n B
3.5.3 Hadoop工作流引擎
: z6 v& `" {- ]3.6 小结8 f& W# [4 w" L5 p" ] h
第三部分 MapReduce核心设计篇
0 w, {# P% q" G+ L! ^5 v, A第4章 Hadoop RPC框架解析* u2 U: l( S5 e* M
4.1 Hadoop RPC框架概述
4 G0 x9 R( U: h( }) R4.2 Java基础知识* z$ q, c" G# y+ s; K0 F u
4.2.1 Java反射机制与动态代理
6 u2 u9 i3 W3 Q x$ v* `9 G i4.2.2 Java网络编程
2 ]$ n7 V3 m8 _0 c+ s4.2.3 Java NIO
" s y; c. ? j* U$ _. z0 p8 ~4.3 Hadoop RPC基本框架分析
" \2 y2 T# y# H1 y4.3.1 RPC基本概念0 N* ]' E( m/ S
4.3.2 Hadoop RPC基本框架1 N7 V( S( P" Z2 \- o+ H
4.3.3 集成其他开源RPC框架% G0 N! d; k8 h' f2 C2 e6 x& D
4.4 MapReduce通信协议分析. d7 X3 j: W0 W
4.4.1 MapReduce 通信协议概述- G$ P7 [4 g9 p0 d3 p6 y
4.4.2 JobSubmissionProtocol通信协议
3 d8 R0 n0 G. Y. R4.4.3 InterTrackerProtocol通信协议2 j4 A3 f! O% q+ l
4.4.4 TaskUmbilicalProtocol通信协议5 o5 B+ H! R! c8 l
4.4.5 其他通信协议
2 p/ W. G+ t% _% ?+ J( ~( D4.5 小结6 G9 ^- [9 @/ j) Q! r
第5章 作业提交与初始化过程分析, w; a4 |9 G, U) ^1 T/ f
5.1 作业提交与初始化概述
% Z) f6 A% r) ?$ b) T# R% q5.2 作业提交过程详解
# J4 E( k& T8 E$ r5.2.1 执行Shell命令
# N+ {; b8 v# }! d" f5.2.2 作业文件上传9 M3 }( k, n, S% I* z# ?) a) o
5.2.3 产生InputSplit文件
7 k* y8 o$ @( x8 d' ]5.2.4 作业提交到JobTracker
S8 z8 V3 B; Y' i( q& w5.3 作业初始化过程详解
/ g$ C. O' ?4 c) w( b. q5.4 Hadoop DistributedCache原理分析 U1 P: M# [6 Z# a/ E, N3 z
5.4.1 使用方法介绍
# P, v2 y, V5 ~5.4.2 工作原理分析* M1 x. }8 b3 t- n7 ^
5.5 小结
" l0 f- R4 G V( {第6章 JobTracker内部实现剖析
& Q# I2 M; H/ W% h) d1 Z6.1 JobTracker概述
' J9 A1 R! g1 `& ^6.2 JobTracker启动过程分析1 [1 Q8 B* `# o8 R' `+ s; v
6.2.1 JobTracker启动过程概述
: V2 s# b5 b |& S+ }6.2.2 重要对象初始化9 f! W. W- e+ ~* F8 P
6.2.3 各种线程功能& I2 a4 K- f; V ?1 n" n# ?) b
6.2.4 作业恢复
0 { a4 }. r5 C4 T$ G5 s6.3 心跳接收与应答
( Z S0 ^3 o( i6.3.1 更新状态
( o, v( d2 \# N% H6.3.2 下达命令
: s, a/ Z6 K! O: T) L, {6.4 Job和Task运行时信息维护3 x4 K: a7 T# p8 p
6.4.1 作业描述模型1 Q: I. w8 k' ^ q1 p9 F
6.4.2 JobInProgress
1 _0 E$ J) u6 C- F2 u# Y- f6.4.3 TaskInProgress& G$ Q+ T) V: j: i( N+ j- @
6.4.4 作业和任务状态转换图9 ^/ z8 }( e ?& ~, c: c* L5 l
6.5 容错机制
0 _4 ^8 E. R1 _7 T( L/ D7 w6.5.1 JobTracker容错
2 l r- K* V6 r' U6.5.2 TaskTracker容错6 f q7 a* U' a* O3 Y3 V" A
6.5.3 JobTask容错. S/ K9 G: x t, \
6.5.4 Record容错
e# D: h5 W/ L& h4 o- N- u6.5.5 磁盘容错
2 J4 V8 M# ]7 W1 C6.6 任务推测执行原理
" L5 _! C: B2 f V& [6.6.1 计算模型假设
: A s, A. h+ i9 S6.6.2 1.0.0版本的算法; j2 h; H- t2 V# ?6 C* `2 o% V% k
6.6.3 0.21.0版本的算法; k5 Q# Z$ ? o
6.6.4 2.0版本的算法
4 J" d5 |$ z; x$ b: t! G6.7 Hadoop资源管理& `9 j4 G) o+ B: x( h, V
6.7.1 任务调度框架分析
2 _" O6 v# y+ Q6 Y7 d8 ^6.7.2 任务选择策略分析
# X% S( K, y& G6 z: j6.7.3 FIFO调度器分析 X) L* S7 E: ~9 q) p R1 @4 u
6.7.4 Hadoop资源管理优化
8 W& b; Z( f( Z5 _+ \8 `. h. j. m6.8 小结' {* H! y& d, Q3 D7 G3 Z9 a0 D
第7章 TaskTracker内部实现剖析1 u! O. O1 D' X
7.1 TaskTracker概述
6 h9 x4 g2 h. A4 Z9 P/ u2 G7.2 TaskTracker启动过程分析, F2 Q; k' A. J) V
7.2.1 重要变量初始化
% @$ E) U2 o+ P. m7.2.2 重要对象初始化/ J+ s' ]; Z H
7.2.3 连接JobTracker8 a9 I/ m" m7 ]6 |, Q$ u
7.3 心跳机制
: ~8 a7 j7 h: P" \ ^: p3 |5 j7.3.1 单次心跳发送
+ Y% c+ }4 k9 c, Z7.3.2 状态发送
- B* \2 c" L! E! S3 d' a% K4 r2 _& o7.3.3 命令执行+ Z9 C& @/ S. e! m
7.4 TaskTracker行为分析! `1 w& O! X8 H9 w) ?
7.4.1 启动新任务& f- Y3 }8 w0 X( [! S( H% I
7.4.2 提交任务
3 _( O+ r' t( T1 u3 F3 J7.4.3 杀死任务
6 b$ q$ h4 f# Z6 d1 B1 I7.4.4 杀死作业
' P2 A' o5 u+ e( `$ Q$ ^7.4.5 重新初始化
0 w9 b8 h$ s1 F: j: O6 \; _% y7.5 作业目录管理5 i: C4 C" O1 ^* j9 j8 u. ^
7.6 启动新任务
: E: O: m8 s3 M# i6 ]5 j: u& v7.6.1 任务启动过程分析
' C* M+ u( W6 q( q7.6.2 资源隔离机制3 V5 r+ Z) Y+ `7 O* k8 Z3 [: g
7.7 小结
2 ]5 k& Y8 v9 M& n/ w. G8 q/ ?第8章 Task运行过程分析
; O4 M' @# X/ p+ \7 _$ s/ u8.1 Task运行过程概述/ g) m V8 j+ p% l6 Q" a0 H
8.2 基本数据结构和算法
" @7 v6 Y5 U) p u" O8.2.1 IFile存储格式1 t* I) L, Q* f2 V
8.2.2 排序
! w T9 {1 u* o8.2.3 Reporter5 l: D* d. }- @' A2 ^' A$ [
8.3 Map Task内部实现
- }5 t' ~' N1 b( y$ w8.3.1 Map Task整体流程6 |4 Z. O, ` f/ F7 M
8.3.2 Collect过程分析
0 _7 B5 K: H: U+ W8.3.3 Spill过程分析
4 \. B& C& k2 {4 a3 ^+ c8.3.4 Combine过程分析
1 A: c& C, \3 M* @3 }: W8.4 Reduce Task内部实现: j$ h" {; c t9 Z( I' v9 E
8.4.1 Reduce Task整体流程
% y9 P* Y* N0 E( e. l& O8.4.2 Shuffle和Merge阶段分析; s. m( }/ W z7 G
8.4.3 Sort和Reduce阶段分析
, S! y# ?3 ]# T/ }8.5 MapReduce Task优化6 z" n w7 d4 |% f
8.5.1 参数调优
; @. [! |; ?% V3 L0 M8 L1 B8.5.2 系统优化
9 y! q5 T0 v4 q8.6 小结
6 |/ {; v3 k% r P [( l第四部分 MapReduce高级篇
$ b. q6 |4 S8 A5 h* `' w% @" W第9章 Hadoop性能调优
& l" A( A2 i: P* }0 @9.1 概述7 N3 x q# |+ M1 p* a Q
9.2 从管理员角度进行调优8 ~1 `" M3 q: _, @1 T
9.2.1 硬件选择' c5 v/ I- Z0 i' U2 j1 C5 F
9.2.2 操作系统参数调优
, j" ?' ` T) a' h9.2.3 JVM参数调优4 o3 X! y* I1 C G. K$ x
9.2.4 Hadoop参数调优
$ \7 r; c F# n1 Z/ b" N& \9.3 从用户角度进行调优
! O5 E# Y1 Y7 M8 W& D. K' w* ~9.3.1 应用程序编写规范
9 d6 l. J% a: l9.3.2 作业级别参数调优
( j* C/ G: F/ A9.3.3 任务级别参数调优3 y# f% j) }! p
9.4 小结
9 j: P# G2 @! B' D! x第10章 Hadoop多用户作业调度器
! I/ r. c/ E* a; k% S; W10.1 多用户调度器产生背景
( ]& ?2 w0 Q8 J% \10.2 HOD" ?) f# J0 c$ _0 Z1 j: L( B. o
10.2.1 Torque资源管理器$ Y- h) z; Z. ]1 l9 |
10.2.2 HOD作业调度) L# P6 d( a+ L+ Z$ a2 b
10.3 Hadoop队列管理机制! B- o+ a' I; a' k7 x
10.4 Capacity Scheduler实现; y# \) R! N( i2 J6 [4 {+ a& {+ h
10.4.1 Capacity Scheduler功能介绍$ C3 ?5 d& w# c% C1 k4 q [. B
10.4.2 Capacity Scheduler实现
1 s# {, ?/ a5 @10.4.3 多层队列调度" D: [8 t$ r4 h% _0 E, E' M
10.5 Fair Scheduler实现
! I8 M9 H+ l; p10.5.1 Fair Scheduler功能介绍
" c" J% U" @: X% w* r) S* X; W10.5.2 Fair Scheduler实现
; b/ j& d* d# A9 n( G% n) c6 m! I10.5.3 Fair Scheduler与Capacity Scheduler对比
/ V3 d, O# O4 u" e5 z+ A10.6 其他Hadoop调度器介绍
# o; x' R$ o/ d10.7 小结
; n2 b5 u! U* p第11章 Hadoop安全机制
0 _/ l1 B9 j. F- }$ \& Z) B11.1 Hadoop安全机制概述" R$ n5 w6 X' W, x: B0 A7 T
11.1.1 Hadoop面临的安全问题
. j4 O3 y) Y* F* W. e" w8 g, h11.1.2 Hadoop对安全方面的需求
" J8 B! I C1 g/ T* _11.1.3 Hadoop安全设计基本原则
+ f1 s" p, R+ g" r11.2 基础知识
6 L- ]) i( y9 A2 i11.2.1 安全认证机制0 b# D0 _/ W7 m
11.2.2 Kerberos介绍& F* v: b$ {' R8 n8 i5 W2 |, C1 k5 g
11.3 Hadoop安全机制实现
3 _& k- q0 o7 h- u8 M/ X$ s9 Y) x/ O11.3.1 RPC9 [$ a- i" `! S1 m. T: g& w, I
11.3.2 HDFS
1 m2 W2 o1 @" S11.3.3 MapReduce
* t" D7 Q y5 f: O# I: e11.3.4 上层服务
4 w0 r# u8 m! T, o2 a, X11.4 应用场景总结/ }) `; i$ }( G9 z, `0 C6 y
11.4.1 文件存取( ]4 p' j3 y; M( d' a
11.4.2 作业提交与运行
! H7 @$ c! a; W+ e, h+ S0 J11.4.3 上层中间件访问Hadoop% Y- G! j1 }% k$ T, @
11.5 小结9 h2 U- n( P/ r4 _+ ^9 A: u/ j* h
第12章 下一代MapReduce框架$ Z" s; `& k1 L7 X
12.1 第一代MapReduce框架的局限性
* S, X4 z Q( \7 b! T3 ` J; y12.2 下一代MapReduce框架概述4 C4 t4 K# l: c) c& B, Y
12.2.1 基本设计思想
, H" V8 q. w% o% R( Y, A2 q; r12.2.2 资源统一管理平台
: \" b" p" t' f9 H4 K; L* i12.3 Apache YARN
" f- ?' q3 p( M$ i12.3.1 Apache YARN基本框架
" @! [ K/ }/ M3 Q* e12.3.2 Apache YARN工作流程
7 W0 L- T% B+ L {' o) @% n12.3.3 Apache YARN设计细节
, W$ U* |, A! F12.3.4 MapReduce与YARN结合- e d# P3 j+ b6 H( I' L# O+ `+ Q
12.4 Facebook Corona2 J% r$ M/ [) k: z
12.4.1 Facebook Corona基本框架
7 U( ?2 \1 ?% s12.4.2 Facebook Corona工作流程% k2 L" K/ D# o- m2 x! j
12.4.3 YARN与Corona对比
- y+ l4 ?2 v g) v" t- Y12.5 Apache Mesos8 }6 K# J, d5 Z3 _6 c
12.5.1 Apache Mesos基本框架
- }8 S& {4 }) ~! w. N- e7 ~6 {12.5.2 Apache Mesos资源分配% r! B& b9 R0 v9 C+ F
12.5.3 MapReduce与Mesos结合
+ q9 d* V, ~& p* U2 G2 H& c6 n12.6 小结; t. A$ R' ~# Q) x5 d; ?1 s' ~
7 o8 q" C2 V2 K6 ]电子书优惠获取地址:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》
% ?0 Y R* U& n4 ~1 X
% [* R4 s% B8 v) D6 i' H& R% ~6 b6 ~: q5 G
- f+ o/ s" ?# Q! _9 ]' K/ L( c
|
|