|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》, x0 g3 f0 t7 B; m3 \4 E
java电子书推荐理由:由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和Task等MapReduce运行时环境的架构设计与实现原理,最后从实际应用的角度深入讲解了Hadoop的性能优化、安全机制、多用户作业调度器和下一代MapReduce框架等高级主题和内容。$ S, F h. V" A- n$ B; N
" h( g8 [; U) s$ a
# e+ c1 e4 u: k$ k) I( a
作者:董西成 著2 r, @! q7 v- |! s3 f( C
出版社:机械工业出版社
% C- l0 H( w! |( W; r' N7 @出版时间:2013年05月
' S0 E4 x2 e4 L+ C& a% a( q t/ l% |& o+ p0 m
* [6 q6 z. [( ^/ M
( H4 v. L' s- v. m" `& D- J/ y4 i
. r& P+ L6 o3 ^# s" y! @5 x4 h5 U, w! S3 S
java电子书目录:5 E& n: d- H% k' e4 ^! T* @
第一部分 基础篇+ o3 e R9 A& Y6 R1 A- u# K
第1章 阅读源代码前的准备
, A. D8 r- _) K2 e7 X1.1 准备源代码学习环境
3 }+ B2 b( D7 s. {8 |, A" r6 o2 J1.1.1 基础软件下载. U) X1 m9 o& `$ W+ a8 m# A
1.1.2 如何准备Windows环境
8 k$ _! _* W: p) |7 q$ z1.1.3 如何准备Linux环境8 M1 `' o& V, R
1.2 获取Hadoop源代码" a' g: S" u4 ^. `. }9 o
1.3 搭建Hadoop源代码阅读环境
" @ K- a" f$ M, k% V1.3.1 创建Hadoop工程
4 T6 V5 i8 J8 ?0 v" ?* H4 P1 F1.3.2 Hadoop源代码阅读技巧( L- l! t9 E. }: {3 z
1.4 Hadoop源代码组织结构, E& f4 {: X+ m, |
1.5 Hadoop初体验. {* L4 T* C+ Q$ I# a# Q4 U6 G
1.5.1 启动Hadoop
, u. h' y1 N% U- `0 A7 B1.5.2 Hadoop Shell介绍
1 t2 S* C1 o$ B3 Y1 ^9 ]1.5.3 Hadoop Eclipse插件介绍8 g I9 f1 a0 G$ A- r0 k) C
1.6 编译及调试Hadoop源代码
. S" v& J6 V- G. t+ V' }7 q1.6.1 编译Hadoop源代码
1 f& T" f; x+ u) A% g: j1.6.2 调试Hadoop源代码
! S( C6 c. M; S8 S' ~: k- D( w" G0 V1.7 小结
$ b. Q4 x/ |: d- {) Y第2章 MapReduce设计理念与基本架构
% j. t: N2 t g2 G' ?: O2.1 Hadoop发展史
3 \. S$ P7 T4 J+ a2.1.1 Hadoop产生背景5 B+ K4 c6 s8 J; P
2.1.2 Apache Hadoop新版本的特性
' l% J* b w. G2.1.3 Hadoop版本变迁
2 K2 w. A7 Q) i2.2 Hadoop MapReduce设计目标! X2 b% \* s8 ~9 n: u1 w1 Y1 K( ?" z
2.3 MapReduce编程模型概述/ b+ g2 Q! K9 k* N! z0 A3 S
2.3.1 MapReduce编程模型简介0 [! Z# w# A0 F4 k" Q9 {1 z" Z/ w
2.3.2 MapReduce编程实例& I2 |, t- O8 C# O% l& J7 K$ w
2.4 Hadoop基本架构
* A C9 \- i1 x2 r: d# x% P2.4.1 HDFS架构 W3 ~) K: @, X# v! Q) S, \
2.4.2 Hadoop MapReduce架构$ O8 v ], x6 U9 N
2.5 Hadoop MapReduce作业的生命周期& n; {! B( @: x4 ^ j% y. q
2.6 小结7 q+ s8 x% I8 O4 X
第二部分 MapReduce编程模型篇) D* Q) g4 R' V( M6 R
第3章 MapReduce编程模型
, B/ `; h) n; n- x3.1 MapReduce编程模型概述
/ @7 X. b5 ~. j- w# X3.1.1 MapReduce编程接口体系结构
4 L+ P) a1 A3 y* }( ?3.1.2 新旧MapReduce API比较9 [" l) ]0 V: \' Z& z* S" ^
3.2 MapReduce API基本概念! Y, w8 h" H6 ~8 F) n! @- i) ^9 X
3.2.1 序列化
3 E; a g' Z4 |( h& P3.2.2 Reporter参数
! n) X0 c% e( N; c: y; P3.2.3 回调机制
% K0 r$ L1 H) z* E8 Z3.3 Java API解析
% r+ Z& s/ _2 J& d; L Q3.3.1 作业配置与提交! }8 F& |7 z9 D2 I K# v' z
3.3.2 InputFormat接口的设计与实现
/ `/ Q3 j5 g/ V, n( @$ i3.3.3 OutputFormat接口的设计与实现( O) @4 B) ]6 Y" p$ x( M7 p
3.3.4 Mapper与Reducer解析4 w! k4 v) n# S! Q' M* g* i
3.3.5 Partitioner接口的设计与实现
5 K" q$ v. P% S/ ^7 P3.4 非Java API解析
8 U4 N7 T3 e S" M5 C0 U8 F1 g3.4.1 Hadoop Streaming的实现原理 u" d: t/ z# q0 C0 j
3.4.2 Hadoop Pipes的实现原理
& O' o+ N4 ~" l8 a) O$ \* i3.5 Hadoop工作流; K/ Y& D6 F0 Y9 \5 U
3.5.1 JobControl的实现原理
% n! O5 i9 T* N ]* Q3.5.2 ChainMapperChainReducer的实现原理; Y3 }8 p. _" E9 Z. p
3.5.3 Hadoop工作流引擎
8 N8 J! e. Z/ X3.6 小结, R1 f0 o* T( q# |0 b2 f* ]
第三部分 MapReduce核心设计篇% a& ~2 U+ K) t5 [* M" F1 c8 Q
第4章 Hadoop RPC框架解析: S5 ~/ n2 S+ c4 a7 s
4.1 Hadoop RPC框架概述
# v( F- w1 ~ ~0 h2 J: g. M4.2 Java基础知识1 X8 m, _7 S& _) C6 D7 _6 x+ ^
4.2.1 Java反射机制与动态代理
2 M0 X K7 P0 z! @2 x3 _* C. a4.2.2 Java网络编程7 Q- h% b; D; E) O% h: [9 p
4.2.3 Java NIO
* N5 K5 R& @. i- h1 E2 F$ p4.3 Hadoop RPC基本框架分析
) g: U3 f1 B5 n$ c3 `) B" C4.3.1 RPC基本概念8 ?6 ?7 Q5 B' C1 ^; o' z; e1 Q
4.3.2 Hadoop RPC基本框架9 u! c7 ?9 N. H
4.3.3 集成其他开源RPC框架. z5 U# y( t. e! j; W3 K
4.4 MapReduce通信协议分析
8 | P8 M& J- V+ }' O% T% T4 o4.4.1 MapReduce 通信协议概述
/ b; e. y% ]& u( Q" J4 ?0 A/ m) f4.4.2 JobSubmissionProtocol通信协议
2 ?* o/ T4 j& h& ]& E, c% S) t4.4.3 InterTrackerProtocol通信协议
+ a0 Q& P* ]) v q" Z7 \4.4.4 TaskUmbilicalProtocol通信协议$ v2 B8 `3 w2 b" q0 L; s' V4 @
4.4.5 其他通信协议
: K) q! I. t* h) h! G# l) |4.5 小结
" g+ W+ `/ ~# s. c) \0 N8 K) h a第5章 作业提交与初始化过程分析4 L/ s% j5 W& X8 q1 T4 q t
5.1 作业提交与初始化概述, u$ F5 T- c2 p1 ?' J" y
5.2 作业提交过程详解* H. L& b, D$ e2 r) t3 `
5.2.1 执行Shell命令0 _" `5 Y$ T3 i/ N* d5 \6 V
5.2.2 作业文件上传
) P6 }( Y7 A+ p5.2.3 产生InputSplit文件
$ @0 e0 m9 J% i0 N3 n5.2.4 作业提交到JobTracker3 l6 X7 N) q- P4 k$ A
5.3 作业初始化过程详解: D' L. }# ^: }& K) q
5.4 Hadoop DistributedCache原理分析
& o9 f4 ]& _/ o7 L/ W, W5.4.1 使用方法介绍
6 z5 Z7 g; m: c0 c5.4.2 工作原理分析
# H3 S8 D5 g* c& k* H5.5 小结- G: ^4 y& D1 y4 _& _
第6章 JobTracker内部实现剖析
1 W8 }# t% d% G. M2 h0 K6.1 JobTracker概述
; w' m2 Y: o2 v6.2 JobTracker启动过程分析
) X! B" B( A& C% K3 C4 O6.2.1 JobTracker启动过程概述
& @. R: a. d. s! x6.2.2 重要对象初始化- h) R$ U) Z* ^ j) r6 E' T
6.2.3 各种线程功能
* X4 J8 W5 u# L( r3 B6.2.4 作业恢复" I. ?& ?# [" n* {$ m3 b
6.3 心跳接收与应答1 n9 m# ^4 j8 }1 p8 y+ J! r5 O
6.3.1 更新状态
! e) ~, _+ U" N5 v! Y' ?6.3.2 下达命令6 ?2 q3 R0 T7 a) t, w4 V- y+ V
6.4 Job和Task运行时信息维护0 B( \: n3 A* @& ?
6.4.1 作业描述模型
0 R( B) j% k3 M- V1 h6.4.2 JobInProgress
4 u6 {/ o% W9 l6 J6.4.3 TaskInProgress' G5 ? O Y+ b b7 X: R$ |6 H
6.4.4 作业和任务状态转换图
4 ~1 ` S( H# c) x! N6.5 容错机制1 s3 e3 H4 E- J; X! `7 G1 {
6.5.1 JobTracker容错0 o' w! [8 h' c" f
6.5.2 TaskTracker容错
2 B* d) I2 j: l# Q) `6.5.3 JobTask容错( }' ?. n6 ]4 |8 l
6.5.4 Record容错# w" ?6 w4 a0 p4 U: l
6.5.5 磁盘容错. M) W2 U X2 K1 ?5 i
6.6 任务推测执行原理/ f" j4 J; Y( {2 G( G6 n
6.6.1 计算模型假设; }! v8 H4 ?+ i# t+ G
6.6.2 1.0.0版本的算法3 n2 N+ q5 w0 e2 I7 W
6.6.3 0.21.0版本的算法
& q* ]* w" E2 i/ w1 z# u6.6.4 2.0版本的算法& z# g1 \* r- m$ m- E# U' }
6.7 Hadoop资源管理
- Y3 q! b) p, u$ {( p- d6.7.1 任务调度框架分析 k+ [6 M' f# ?9 H9 w
6.7.2 任务选择策略分析1 K9 |) B- Z8 `9 L9 y l! m1 y! B
6.7.3 FIFO调度器分析
u; |! r( U. H6.7.4 Hadoop资源管理优化
- B+ F' y8 w+ i) O: J' z8 f6.8 小结
3 @) M/ f# S$ _# w" S第7章 TaskTracker内部实现剖析9 p& U- l0 w' y2 J0 ]! k& u+ C+ d
7.1 TaskTracker概述% }8 I; {( l, i/ ]
7.2 TaskTracker启动过程分析
1 g. B; E z6 }' U- q" i5 X7.2.1 重要变量初始化
) S9 T* |) z0 f$ R# f h2 Z/ y7.2.2 重要对象初始化
+ N% ^, u& h+ y9 r* s7.2.3 连接JobTracker
9 f2 C8 Z: Q: Q; o7 J- s1 _# S9 s7.3 心跳机制3 g4 |; E9 i& f# C% U; f
7.3.1 单次心跳发送
# t0 ^8 o4 n" u, D2 y% l* V0 g7.3.2 状态发送
. O& ]/ F& z: N7.3.3 命令执行
O: p1 H5 l- j0 y& `1 [9 F7.4 TaskTracker行为分析9 l6 q3 Q! q' E& g1 c
7.4.1 启动新任务/ D1 X0 |7 A# S. J: l1 d6 L
7.4.2 提交任务
9 B- ~( l6 `: r7.4.3 杀死任务
- q. A. @5 |9 a" ?- G- y9 O2 i9 ?7.4.4 杀死作业
6 {. @0 \4 m# s! u4 k7.4.5 重新初始化
m0 P9 D$ R6 c3 b7.5 作业目录管理
4 s/ t3 j7 E7 y: F3 l! k+ V& |2 v7.6 启动新任务% O6 u5 k) S: N& d' i8 U, b
7.6.1 任务启动过程分析) D9 B8 z. D* {8 H5 k) D
7.6.2 资源隔离机制
0 ~. \ R# U0 w* t; i% `6 C7.7 小结. O8 D: I* s) o
第8章 Task运行过程分析
6 m1 i2 L6 g5 o3 j; ?8 e/ n8.1 Task运行过程概述
, {- U0 j! n9 J! Q/ O0 [% M& S& ~2 q6 a8.2 基本数据结构和算法9 [1 [1 M4 v6 y/ s
8.2.1 IFile存储格式
+ [# `2 ?( {) ~8.2.2 排序
% o" s! C7 k0 q8.2.3 Reporter0 e2 e. v) T+ ?4 b1 {5 T# x
8.3 Map Task内部实现
; }1 x. z* s% A5 l3 R3 z8.3.1 Map Task整体流程- ~, s& V0 y* t6 f
8.3.2 Collect过程分析
. o# B2 F6 X7 U/ ^* H5 L" p8.3.3 Spill过程分析3 t5 A8 i8 s$ A% L' ~& _
8.3.4 Combine过程分析. J3 S/ C3 b2 o! ~
8.4 Reduce Task内部实现% k. p6 u! k Y+ T
8.4.1 Reduce Task整体流程
* t( F& m- y; s8 Y8.4.2 Shuffle和Merge阶段分析
7 C9 N7 h" Y9 w2 h. P( v8.4.3 Sort和Reduce阶段分析) V9 a. b$ M N; P7 |
8.5 MapReduce Task优化8 v2 q! `% a/ ] d+ `! q$ e
8.5.1 参数调优
- U1 t& g+ V- r I4 q8.5.2 系统优化
" F. t# W+ o% O" a' k! v7 I8.6 小结
+ w/ |4 I8 z, t- Z* k第四部分 MapReduce高级篇- y. p, X' P( _/ ~% G; p
第9章 Hadoop性能调优
) n; R2 a$ V+ r2 Z0 c* { F9.1 概述6 F0 E, n" G! R, T8 M
9.2 从管理员角度进行调优9 \: A7 f5 }" J4 i& S4 w( E
9.2.1 硬件选择, W3 I/ j' g, P2 Y7 x4 s. W/ C
9.2.2 操作系统参数调优
% b$ R, ^0 L8 P, O+ k9.2.3 JVM参数调优
4 |3 j( s! ]- i( F& P5 v9.2.4 Hadoop参数调优* Q; j( j+ E- w6 o: N
9.3 从用户角度进行调优
" A% f- Y) y5 w4 T1 v) k4 v( o' j9.3.1 应用程序编写规范8 I4 q2 e# z' g* `9 Z& e
9.3.2 作业级别参数调优
# y' o" o+ b- S1 W. ]/ Y9.3.3 任务级别参数调优
1 P6 v: K7 Z* c" H S9.4 小结9 |% ?3 b9 ?* S3 U& q. b( v
第10章 Hadoop多用户作业调度器7 u. n' {! D, ~
10.1 多用户调度器产生背景0 a+ I' a9 |+ v3 z9 u. X* o, v0 ]
10.2 HOD
1 O+ j' C6 E$ A b* _- b10.2.1 Torque资源管理器. v+ t: d* @6 k9 a. d1 a2 y
10.2.2 HOD作业调度
% g( N& |2 Q \5 T3 L) {% `10.3 Hadoop队列管理机制2 U! w9 t4 u- k0 r1 C% w
10.4 Capacity Scheduler实现$ {' @# U/ I8 C' e1 v! B1 N
10.4.1 Capacity Scheduler功能介绍
# g' |6 K/ E9 [10.4.2 Capacity Scheduler实现% b8 ^, r2 \: X5 M0 w
10.4.3 多层队列调度
5 b' j0 {- C- [# b9 [7 A10.5 Fair Scheduler实现/ ~2 V" W# |! F7 J. H4 x
10.5.1 Fair Scheduler功能介绍
" a' j+ P/ m" N; ~! U10.5.2 Fair Scheduler实现
7 b' l/ _8 v( f9 b) t( e10.5.3 Fair Scheduler与Capacity Scheduler对比
1 H2 F$ ?9 C8 t) _10.6 其他Hadoop调度器介绍* Y; g G9 z' S6 t
10.7 小结( |2 E$ V% F! T/ Y: |
第11章 Hadoop安全机制
/ B- H* Y$ l3 _7 Z0 y11.1 Hadoop安全机制概述+ P) D7 q8 r- w! l8 C+ ]' }1 ~# e
11.1.1 Hadoop面临的安全问题9 w* Z- P/ N; n" s( K( ]8 [
11.1.2 Hadoop对安全方面的需求3 W+ e; O Z% k) j9 O- ~
11.1.3 Hadoop安全设计基本原则
/ p$ P' M) @9 Q5 D% {- }$ {11.2 基础知识' @/ l3 l/ ]4 O+ l
11.2.1 安全认证机制
7 f, f8 Y- z& {0 N) J) P11.2.2 Kerberos介绍
" X9 A( t3 |3 h& m/ Y8 Z8 Q11.3 Hadoop安全机制实现 X: }9 r& D% C
11.3.1 RPC& p8 h: T- {. I7 [
11.3.2 HDFS
0 t8 h! A, _* z' j. C2 O& G11.3.3 MapReduce
& R- Y* c3 u5 H; _* a" ~11.3.4 上层服务
4 b' u. Q. q0 B11.4 应用场景总结7 ^+ I4 D9 A& W T9 _! J
11.4.1 文件存取6 @. a# a$ i5 m' d( @/ R7 Z1 u
11.4.2 作业提交与运行
5 X: t! ]3 j5 p11.4.3 上层中间件访问Hadoop% j5 C7 s) ?' y
11.5 小结, r+ z2 N1 j; [; |- x) ~0 \
第12章 下一代MapReduce框架
. S2 b+ m# K8 _! X5 s3 H- N12.1 第一代MapReduce框架的局限性' V0 G% h% M1 _( ]2 C9 Q/ i
12.2 下一代MapReduce框架概述 s7 R0 J3 \+ n. u
12.2.1 基本设计思想
+ R& j# c- w7 u3 c% P% \4 T& g12.2.2 资源统一管理平台
' O" `" M& K& m# O12.3 Apache YARN9 ]) a" C# v2 w
12.3.1 Apache YARN基本框架' |/ |0 d0 g& ~& D0 X8 O
12.3.2 Apache YARN工作流程
- m) H8 ~: K" m0 C u( B. C12.3.3 Apache YARN设计细节
1 ~" S% f# ?4 N1 N7 w12.3.4 MapReduce与YARN结合
! C- X( @$ E. Q+ h$ L) J# @9 X8 a12.4 Facebook Corona
; E1 \2 W- b0 z! w12.4.1 Facebook Corona基本框架+ N' ~; Z1 t( ~: I1 O
12.4.2 Facebook Corona工作流程; R9 p% m( K$ e
12.4.3 YARN与Corona对比3 q/ `. d. `# C7 H% X- ?' m. h
12.5 Apache Mesos
( j6 A) R- Y/ F; u12.5.1 Apache Mesos基本框架
3 b3 c7 a+ x9 X# F* A% `% N12.5.2 Apache Mesos资源分配
7 V+ p8 }5 r! F. M- o5 Y12.5.3 MapReduce与Mesos结合
. P) a0 f9 C) h# ^1 M& ?12.6 小结. X7 w0 l9 B+ H/ d; r# L
$ Y) X8 k$ Q+ J
电子书优惠获取地址:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》! m" O$ q8 Q$ @6 ?$ \
5 ]0 V* ~0 v* I+ L" f
4 h, ^3 |3 y! ~* x, I" A& [
5 s3 [# L( q: J" n |
|