|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》. q% H2 q3 k4 h! [! ?+ h3 ?+ E
java电子书推荐理由:由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和Task等MapReduce运行时环境的架构设计与实现原理,最后从实际应用的角度深入讲解了Hadoop的性能优化、安全机制、多用户作业调度器和下一代MapReduce框架等高级主题和内容。3 e( @& J! i5 G
* M, a. _) x3 ? N2 _/ V6 x
4 P$ m! H W# x! B& T- u5 x" C7 y
作者:董西成 著9 F$ I: c/ |, n( y9 a! q5 o) u
出版社:机械工业出版社# h) V3 R1 y3 l0 e0 p
出版时间:2013年05月 ; l/ _9 s2 c2 O# ^; C2 t: w
h2 r2 b% M' C* R6 @3 _0 U, F5 Z
; [. Y& U0 N6 y# J6 D9 B
! Z9 T& `7 n) a9 s3 Q: G( x5 K; C: s+ c! @9 m7 z, o
9 `1 A0 w4 d; Q) fjava电子书目录:# }7 l3 `! d5 U `; S" H
第一部分 基础篇
) d" M: K; D8 d, X% m. W# B第1章 阅读源代码前的准备
) U/ J, E7 y+ {5 v1.1 准备源代码学习环境
5 X0 @. @3 c, g7 i e7 q7 E5 p1.1.1 基础软件下载6 H4 ~# b) ~9 s; b: m- P
1.1.2 如何准备Windows环境
. W j+ p+ t2 T. Y& D. ?9 b1.1.3 如何准备Linux环境
6 W# b) Y+ e- \2 t9 G1.2 获取Hadoop源代码
; I9 l( p J1 y) u2 P: [1.3 搭建Hadoop源代码阅读环境8 i# o8 t, T* p O
1.3.1 创建Hadoop工程4 ]4 I0 ` K( f7 t/ s( ]$ _
1.3.2 Hadoop源代码阅读技巧
+ @" V0 X5 h6 A5 F0 b2 o1.4 Hadoop源代码组织结构6 e% U/ V" e. G
1.5 Hadoop初体验
& u; W$ U% Y4 T1.5.1 启动Hadoop
9 t5 r" R% q- {9 U6 R1.5.2 Hadoop Shell介绍
( K) |2 l P# A: n4 |# @# R1.5.3 Hadoop Eclipse插件介绍
5 y0 F! _9 k. S" H* U1.6 编译及调试Hadoop源代码
- v8 O. D& O( Q; S5 j) F# J8 E$ z. s1.6.1 编译Hadoop源代码
% p0 y+ K' h# |5 G& S# B1.6.2 调试Hadoop源代码
Z _ b/ X7 A1.7 小结
! j8 [; L7 U/ H! M% I第2章 MapReduce设计理念与基本架构, y& o9 F; l7 D/ q; Y7 S
2.1 Hadoop发展史6 ]4 h+ A! p# q7 ^& M! H7 }- g! w
2.1.1 Hadoop产生背景
6 [3 p8 P* p( @2.1.2 Apache Hadoop新版本的特性" S1 X5 K/ t3 N! y$ j
2.1.3 Hadoop版本变迁
6 W- ~$ X7 w! m2.2 Hadoop MapReduce设计目标6 z+ n' L8 A# v. }
2.3 MapReduce编程模型概述, p. G, Z; l5 E
2.3.1 MapReduce编程模型简介4 _/ B& O- {) c9 {4 R* f
2.3.2 MapReduce编程实例. s0 `! V) c4 f4 F8 r4 L/ _8 m% `
2.4 Hadoop基本架构
0 [4 Z. H1 x, X' @9 u7 Y) P2 ~2.4.1 HDFS架构
* e# b" Z7 Z4 P2 p2.4.2 Hadoop MapReduce架构
" @- d' Z4 o) K( i& a+ B2.5 Hadoop MapReduce作业的生命周期/ W* B! ? _% n3 k7 x$ G
2.6 小结) M4 M X8 S* F, J; ^) Y* i
第二部分 MapReduce编程模型篇, S# Q/ E7 ~6 b* A p/ h7 ?
第3章 MapReduce编程模型
6 }+ I6 k& t/ L& j* x) ^7 ^3.1 MapReduce编程模型概述1 R S$ }, x- A& v1 v4 P; R6 [% G0 ~
3.1.1 MapReduce编程接口体系结构
: B% Z+ G+ z) i4 G* ?) ~3.1.2 新旧MapReduce API比较- U: l: o1 S# s4 X
3.2 MapReduce API基本概念
5 j8 X! ~) T: U; S. D J3.2.1 序列化) j0 D2 k# q2 [& X9 X2 W# ~, J
3.2.2 Reporter参数
, Z) q9 c. B- ~/ {3.2.3 回调机制0 ?* I/ R0 o4 _+ M s c/ S. ^
3.3 Java API解析( z7 Y/ s% o' L
3.3.1 作业配置与提交
) L2 x8 {& L4 v4 l9 O3 r& z5 R3.3.2 InputFormat接口的设计与实现) C+ g5 P3 {) g( P
3.3.3 OutputFormat接口的设计与实现2 X* }( t/ ]' P
3.3.4 Mapper与Reducer解析
2 x8 H0 Z ]. ~' H9 I6 P4 l3.3.5 Partitioner接口的设计与实现
; i% f, _0 G7 `- w6 A i, y* ^3.4 非Java API解析- z" s' }4 r8 i$ M
3.4.1 Hadoop Streaming的实现原理
' J. ]" w4 v& i" p* m) v5 P3.4.2 Hadoop Pipes的实现原理
7 W( p4 | m+ l$ z6 a- t3 k3.5 Hadoop工作流
$ L6 C( ]! I9 ~$ ] X3.5.1 JobControl的实现原理$ ~: q9 ]/ {, B
3.5.2 ChainMapperChainReducer的实现原理
; f& V& P# d& G `" d3.5.3 Hadoop工作流引擎( F- N5 M: D; j7 o8 l8 z
3.6 小结
" Q4 w; a4 g5 f$ c第三部分 MapReduce核心设计篇
7 w7 J) L" |* U9 }- O第4章 Hadoop RPC框架解析0 n) m, ?" D0 x2 v
4.1 Hadoop RPC框架概述
$ k6 B$ [' r6 T4 g9 d4.2 Java基础知识* {# I9 y* F/ P' j. f! [' q8 x8 t% p3 Y
4.2.1 Java反射机制与动态代理6 h. A. S0 ^, W- [, P# [% \4 z
4.2.2 Java网络编程
. M0 \: G- i: Q# ^7 m7 B4.2.3 Java NIO+ K5 Z. B Z, g6 g( X" }# r9 u: x
4.3 Hadoop RPC基本框架分析
( P# e! l: i5 K5 y1 Z/ j4.3.1 RPC基本概念
* U6 D! h3 S9 L) K7 v& i% j/ E3 m4.3.2 Hadoop RPC基本框架
$ Z& v% c% h. z, Q- f, y( Z4.3.3 集成其他开源RPC框架$ }0 I. d" S! H
4.4 MapReduce通信协议分析
% w$ k* \7 H* j9 f0 {& @8 Z4.4.1 MapReduce 通信协议概述& o( I6 i& l" P( e5 @8 L
4.4.2 JobSubmissionProtocol通信协议
- r7 N( t2 R# D) Q+ E7 ^, _6 X+ {4.4.3 InterTrackerProtocol通信协议3 ~# {4 u$ i: n- A) M
4.4.4 TaskUmbilicalProtocol通信协议
& A! L$ `- A A+ ^/ C4 v4.4.5 其他通信协议
! `) E. ^& g- T$ C5 u) ]$ W5 }4.5 小结% F/ V5 a/ h0 K9 F
第5章 作业提交与初始化过程分析# X! D* h9 U. S* L- a
5.1 作业提交与初始化概述
1 _: o1 A6 A& T8 k- X1 Q7 q9 {5.2 作业提交过程详解
/ h# x$ a# Z9 Y8 Z9 \. [5.2.1 执行Shell命令
! w5 l) H. K1 x9 U) v* k9 V( p x5.2.2 作业文件上传
4 O& L2 ^$ C& |5.2.3 产生InputSplit文件
( v4 Y" d. t9 F' D4 g4 Y D5.2.4 作业提交到JobTracker7 y, T7 }- f) m8 _4 T
5.3 作业初始化过程详解0 N7 O" W8 w, ?0 P# h
5.4 Hadoop DistributedCache原理分析) Q1 V$ a- F; @
5.4.1 使用方法介绍! B; k5 e1 D7 v+ [1 A9 g
5.4.2 工作原理分析
% n, r$ w m7 y6 }" m, ^( Y1 J: [5.5 小结
2 N) t& s: w, b1 l9 W( o% h第6章 JobTracker内部实现剖析$ L: Q4 E- r! b R
6.1 JobTracker概述& h, `7 G0 G9 H; p
6.2 JobTracker启动过程分析
' \' Y2 |- e0 l5 U# i6.2.1 JobTracker启动过程概述( F, N2 c9 h" v, s' g4 Y R
6.2.2 重要对象初始化
/ R! [% _" h, H+ z. X; n6.2.3 各种线程功能
2 }$ T% L4 i' L) g6.2.4 作业恢复
5 E, z4 ~+ c# W& ?; P( i+ D6.3 心跳接收与应答1 a# X2 u f4 F* `
6.3.1 更新状态
# o) d; Y2 X9 j6 _+ q9 ^% P6.3.2 下达命令
/ M3 W5 K/ N, h. `- W2 X1 e6.4 Job和Task运行时信息维护6 V$ i1 {! w- D
6.4.1 作业描述模型
) Z0 w' F/ c9 S2 |, d7 Y6.4.2 JobInProgress
5 S+ D3 W! e& S* D6.4.3 TaskInProgress& e8 O+ S9 n# r
6.4.4 作业和任务状态转换图/ ]+ R/ `" J$ K- D. s7 ]
6.5 容错机制
: d% B% n5 T1 u/ K6.5.1 JobTracker容错0 t5 h& o# p2 b! C7 ] N" L
6.5.2 TaskTracker容错
2 f# g( v! E, p: O2 Q! n3 \( W6.5.3 JobTask容错% D& m4 {+ D$ t! p
6.5.4 Record容错
: [3 f- s" M9 k0 f6.5.5 磁盘容错
7 t9 r2 Y* \. s' z6.6 任务推测执行原理1 \7 ^" Z9 m7 j9 b
6.6.1 计算模型假设6 K* ?3 e4 u0 @% D4 Z( K& S
6.6.2 1.0.0版本的算法5 K' |& {. Y S5 T7 n* ~: J7 y
6.6.3 0.21.0版本的算法
, J& j) C+ Z) x+ n) q$ f: L) J4 n6.6.4 2.0版本的算法( o F+ c( ?7 x
6.7 Hadoop资源管理/ S2 `' ]2 ]( v' l& M; W( J) v
6.7.1 任务调度框架分析0 r; z. }* {/ G# |1 D# a
6.7.2 任务选择策略分析
% n# O6 n* t' b6 N2 f3 @6.7.3 FIFO调度器分析
9 h9 ? Q7 Y. z6 T9 L6.7.4 Hadoop资源管理优化
& v. p* f7 v, j6 q6.8 小结
8 Y2 |4 Q& T, s) |! g. R第7章 TaskTracker内部实现剖析% k8 c2 g, c0 x, P5 C
7.1 TaskTracker概述' A0 E" j* h3 U. l, f6 h/ r/ M( n( r+ H
7.2 TaskTracker启动过程分析
, q& c* C0 W6 Z/ D8 ^7.2.1 重要变量初始化
5 y2 ~0 n+ l. v. z7.2.2 重要对象初始化
% s( U, m$ ^$ q7.2.3 连接JobTracker1 R8 S/ Z+ H T' M) b8 z5 z; a
7.3 心跳机制 y2 v/ u: _/ L+ {. |
7.3.1 单次心跳发送1 E4 U8 j# t# _: b: m
7.3.2 状态发送
6 u& F$ Z, i; F/ ^7.3.3 命令执行
9 i6 e+ o: u6 y' \% x0 y7.4 TaskTracker行为分析* I D% S5 f: p: m0 t: m
7.4.1 启动新任务/ E$ K1 N h/ ?# v5 O3 w1 U
7.4.2 提交任务 g% I* V* A ~6 t8 u& r) ^0 F! ]5 A
7.4.3 杀死任务
( W+ V$ z3 g, i& p7.4.4 杀死作业
$ g( }, V" n p* |6 i7.4.5 重新初始化% y5 ?' a9 P$ S+ b. w* m
7.5 作业目录管理
; I' C5 M; @/ S) g/ e5 A7.6 启动新任务
8 t6 i, i c$ s8 n9 ~7.6.1 任务启动过程分析0 k0 t/ M i% a# M+ S
7.6.2 资源隔离机制; |8 h5 T: _8 [' ~' ?6 p0 P
7.7 小结
3 Q3 s8 z% w% Z+ B; ^/ n" i z第8章 Task运行过程分析$ I1 n$ n, h( C9 i
8.1 Task运行过程概述
) ?+ \- }9 E! }0 l8.2 基本数据结构和算法
, k2 V$ ]$ y" w$ \8.2.1 IFile存储格式% q- k: u, G- ~% r; s' ~
8.2.2 排序6 V8 p$ Z4 ]0 T: w% K% V6 W7 G7 a
8.2.3 Reporter' }9 A# C( b, o
8.3 Map Task内部实现
" z# P% h8 c2 G w! O% x# [8.3.1 Map Task整体流程
& @) y3 f' c% K8.3.2 Collect过程分析- R, p% h7 h& ]7 `3 X' ^: K
8.3.3 Spill过程分析: k! v- d$ }1 U. P8 J/ V% {# N
8.3.4 Combine过程分析# ?1 p$ [+ V- g" Q6 C3 _/ H; C
8.4 Reduce Task内部实现
: C7 V5 q. M7 W: I: Z/ f! q: e; W6 v8.4.1 Reduce Task整体流程2 i; m" H7 |2 {% d6 [
8.4.2 Shuffle和Merge阶段分析$ A, V# T0 ~' C" U% F( S t# m
8.4.3 Sort和Reduce阶段分析7 C4 Z" y7 o8 o3 t
8.5 MapReduce Task优化
; E6 }3 |; {7 M$ k/ T% s8.5.1 参数调优, e* p" @" _. w7 P0 v4 {# R) \
8.5.2 系统优化
3 j; X' O4 O; X, P8.6 小结 g8 h! \6 M' R8 U/ q& h
第四部分 MapReduce高级篇
% p; {; H, w2 O/ N2 }第9章 Hadoop性能调优2 p2 O1 ]3 o! `2 o( f
9.1 概述
t3 M$ I, O; J; e9.2 从管理员角度进行调优
# D' q7 E' p w+ U# e9.2.1 硬件选择4 t' K* r6 @# b- [, ?0 ~% Q
9.2.2 操作系统参数调优8 q5 g9 P$ _! z% J! B$ S2 I
9.2.3 JVM参数调优2 c: g( E% N. n; k k# ?
9.2.4 Hadoop参数调优
8 U% }; }6 G" \6 d: K9.3 从用户角度进行调优
, X7 j# e: M1 H* K9.3.1 应用程序编写规范
' l8 I; o- j. L) @; B! `0 w8 v9.3.2 作业级别参数调优) A2 |, x2 i* Q9 T. p
9.3.3 任务级别参数调优
/ D! Z* f2 G2 A2 o9.4 小结
; o% e& |" W- L9 i& }第10章 Hadoop多用户作业调度器$ G( y% y2 G; C' ?' F- E
10.1 多用户调度器产生背景
" } B( W5 S% I6 D10.2 HOD
8 w6 O0 T5 e M. o10.2.1 Torque资源管理器
% w: \! a9 y- n10.2.2 HOD作业调度0 v; x- e2 }2 b! v$ l$ |3 p
10.3 Hadoop队列管理机制
6 ?1 s1 Y& s: @' O$ i# ]10.4 Capacity Scheduler实现
3 x$ F* l0 Q2 o$ l6 r, z. I10.4.1 Capacity Scheduler功能介绍
# Z& l' u- T2 K% J' G1 s10.4.2 Capacity Scheduler实现* b% r4 T; H4 l3 w \
10.4.3 多层队列调度( l7 P9 D2 ^/ v, x( q! a9 M: W, u- `
10.5 Fair Scheduler实现
1 k6 L8 N% V) G% I$ v10.5.1 Fair Scheduler功能介绍
3 f7 e" m$ q) r3 ]4 F10.5.2 Fair Scheduler实现- b1 L* Y9 S, d: `) w: F
10.5.3 Fair Scheduler与Capacity Scheduler对比/ Q. Q; @) V& k: V
10.6 其他Hadoop调度器介绍
& f+ @( b' ?+ v6 @# m$ v9 v10.7 小结
; T1 L/ _4 G& g1 C7 y" {# c7 }第11章 Hadoop安全机制
5 U% j- H# @# A) I, I11.1 Hadoop安全机制概述& k' `( |9 Z1 B: S& s5 T8 h
11.1.1 Hadoop面临的安全问题# \( \" f& m6 J; i8 u C5 m
11.1.2 Hadoop对安全方面的需求$ d) `# D7 x; U$ Q2 f; N
11.1.3 Hadoop安全设计基本原则
& K1 y# m$ u" S) L. _9 T11.2 基础知识
8 w2 s7 j& x* u11.2.1 安全认证机制 l# H' V4 k# I! G
11.2.2 Kerberos介绍
7 u/ M, H7 Y7 L4 x+ K7 H11.3 Hadoop安全机制实现
2 n6 y: I/ U) S( s# V% e5 s11.3.1 RPC
2 f1 Y2 g) P; u# T0 h7 [11.3.2 HDFS z0 e& w* o; z
11.3.3 MapReduce R |" K* V y9 a0 l% w" }
11.3.4 上层服务/ w$ g7 U9 N E4 n
11.4 应用场景总结/ ]# L$ q& e, m: i8 b
11.4.1 文件存取8 w* ^5 e/ n6 l) m; l
11.4.2 作业提交与运行( j& w; d+ v* Y7 @/ Y! k
11.4.3 上层中间件访问Hadoop
- q! V: }! {3 a0 y11.5 小结
8 F+ r( b6 l- p第12章 下一代MapReduce框架
( U8 v* c! y6 Y0 H& a# Q6 _12.1 第一代MapReduce框架的局限性" J/ K3 G* E9 a" r
12.2 下一代MapReduce框架概述
3 X6 r6 a o- a8 y12.2.1 基本设计思想& \5 M4 G* D; T( j; W1 E& u; K& ^
12.2.2 资源统一管理平台
/ { Q( _( q- P6 Q& H' i12.3 Apache YARN* B! A# {/ O! i8 D1 {
12.3.1 Apache YARN基本框架# _9 L% b" E3 k0 H7 O
12.3.2 Apache YARN工作流程
1 p: }. Z/ N8 E+ W12.3.3 Apache YARN设计细节
8 W% ? A$ ~* ^8 n: f12.3.4 MapReduce与YARN结合9 Q( U1 R3 C3 i6 K6 F" g/ h/ G
12.4 Facebook Corona
" B# U. S; J: R( g# S! O12.4.1 Facebook Corona基本框架. O. P. h' m# G% I& A
12.4.2 Facebook Corona工作流程/ t/ ]# R8 r0 h9 k- ]# W$ `5 @
12.4.3 YARN与Corona对比* X% u$ l" \( _6 ?8 C
12.5 Apache Mesos
9 e( G: C& V3 Y) s5 J- ?# h12.5.1 Apache Mesos基本框架. f+ C7 ^& i, ], Q6 A1 F
12.5.2 Apache Mesos资源分配
- I0 b- h) [6 O8 l+ Y: s0 q! w' y12.5.3 MapReduce与Mesos结合
* P. q/ r, C" S9 ]8 ]- F0 u# b12.6 小结
5 z O5 k$ C$ Q% R( @/ U" h5 [# H4 o6 m' n+ |: ^4 G$ H
电子书优惠获取地址:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》
. l5 E7 [$ ]7 s% V9 ~0 Z3 v" c8 w
$ O0 i. M% d* f
9 F$ z6 v5 I' R/ e: P7 g; S |
|