注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計其他編程語言/工具Hadoop技術(shù)內(nèi)幕:深入解析MapReduce架構(gòu)設(shè)計與實(shí)現(xiàn)原理

Hadoop技術(shù)內(nèi)幕:深入解析MapReduce架構(gòu)設(shè)計與實(shí)現(xiàn)原理

Hadoop技術(shù)內(nèi)幕:深入解析MapReduce架構(gòu)設(shè)計與實(shí)現(xiàn)原理

定 價:¥69.00

作 者: 董西成 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 編程語言與程序設(shè)計 計算機(jī)與互聯(lián)網(wǎng)

ISBN: 9787111422266 出版時間: 2013-05-01 包裝: 平裝
開本: 16開 頁數(shù): 332 字?jǐn)?shù):  

內(nèi)容簡介

  “Hadoop技術(shù)內(nèi)幕”共兩冊,分別從源代碼的角度對“Common+HDFS”和“MapReduce的架構(gòu)設(shè)計和實(shí)現(xiàn)原理”進(jìn)行了極為詳細(xì)的分析。本書由Hadoop領(lǐng)域資深的實(shí)踐者親自執(zhí)筆,首先介紹了MapReduce的設(shè)計理念和編程模型,然后從源代碼的角度深入分析了RPC框架、客戶端、JobTracker、TaskTracker和Task等MapReduce運(yùn)行時環(huán)境的架構(gòu)設(shè)計與實(shí)現(xiàn)原理,最后從實(shí)際應(yīng)用的角度深入講解了Hadoop的性能優(yōu)化、安全機(jī)制、多用戶作業(yè)調(diào)度器和下一代MapReduce框架等高級主題和內(nèi)容。本書適合Hadoop的二次開發(fā)人員、應(yīng)用開發(fā)工程師、運(yùn)維工程師閱讀。本書共12章,分4個部分(不包括附錄):第一部分(第1~2章),介紹了Hadoop源代碼的組織結(jié)構(gòu)、獲取、編譯、調(diào)試、閱讀環(huán)境搭建,以及MapReduce的設(shè)計理念和基本架構(gòu);第二部分(第3章),著重講解了MapReduce的編程接口,主要包括舊API和新API兩套編程接口,以及Hadoop工作流;第三部分(第4~8章)主要分析了MapReduce的運(yùn)行時環(huán)境,包括RPC框架、客戶端、JobTracker、TaskTracker和Task等的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)和機(jī)制剖析;第四部分(第9~12章)深入講解了Hadoop的性能優(yōu)化、多用戶作業(yè)調(diào)度器、安全機(jī)制和下一代MapReduce框架等高級主題。

作者簡介

  董西成,資深Hadoop技術(shù)實(shí)踐者和研究者,對Hadoop技術(shù)有非常深刻的認(rèn)識和理解,有著豐富的實(shí)踐經(jīng)驗(yàn)。曾經(jīng)參與了商用Hadoop原型的研發(fā),以及人民搜索的分布式日志系統(tǒng)、全網(wǎng)圖片搜索引擎、Hadoop調(diào)度器等多個項(xiàng)目的設(shè)計與研發(fā),實(shí)踐經(jīng)驗(yàn)非常豐富。對Hadoop的源代碼有深入的研究,能通過修改Hadoop的源代碼來完成二次開發(fā)和解決各種復(fù)雜的問題。熱衷于分享,撰寫了大量關(guān)于Hadoop的技術(shù)文章并分享在自己的博客上,由于文章技術(shù)含量高,所以非常受歡迎,這使得他在Hadoop技術(shù)圈內(nèi)頗具知名度和影響力。

圖書目錄

前 言
第一部分 基礎(chǔ)篇
第1章 閱讀源代碼前的準(zhǔn)備/ 2
1.1 準(zhǔn)備源代碼學(xué)習(xí)環(huán)境/ 2
1.1.1 基礎(chǔ)軟件下載/ 2
1.1.2 如何準(zhǔn)備Windows環(huán)境/ 3
1.1.3 如何準(zhǔn)備Linux環(huán)境/ 6
1.2 獲取Hadoop源代碼/ 7
1.3 搭建Hadoop源代碼閱讀環(huán)境/ 8
1.3.1 創(chuàng)建Hadoop工程/ 8
1.3.2 Hadoop源代碼閱讀技巧/ 9
1.4 Hadoop源代碼組織結(jié)構(gòu)/ 10
1.5 Hadoop初體驗(yàn)/ 13
1.5.1 啟動Hadoop/ 13
1.5.2 Hadoop Shell介紹/ 15
1.5.3 Hadoop Eclipse插件介紹/ 15
1.6 編譯及調(diào)試Hadoop源代碼/ 19
1.6.1 編譯Hadoop源代碼/ 19
1.6.2 調(diào)試Hadoop源代碼/ 20
1.7 小結(jié)/ 23
第2章 MapReduce設(shè)計理念與基本架構(gòu)/ 24
2.1 Hadoop發(fā)展史/ 24
2.1.1 Hadoop產(chǎn)生背景/ 24
2.1.2 Apache Hadoop新版本的特性/ 25
2.1.3 Hadoop版本變遷/ 26
2.2 Hadoop MapReduce設(shè)計目標(biāo)/ 28
2.3 MapReduce編程模型概述/ 29
2.3.1 MapReduce編程模型簡介/ 29
2.3.2 MapReduce編程實(shí)例/ 31
2.4 Hadoop基本架構(gòu)/ 32
2.4.1 HDFS架構(gòu)/ 33
2.4.2 Hadoop MapReduce架構(gòu)/ 34
2.5 Hadoop MapReduce作業(yè)的生命周期/ 36
2.6 小結(jié)/ 38
第二部分 MapReduce編程模型篇
第3章 MapReduce編程模型/ 40
3.1 MapReduce編程模型概述/ 40
3.1.1 MapReduce編程接口體系結(jié)構(gòu)/ 40
3.1.2 新舊MapReduce API比較/ 41
3.2 MapReduce API基本概念/ 42
3.2.1 序列化/ 42
3.2.2 Reporter參數(shù)/ 43
3.2.3 回調(diào)機(jī)制/ 43
3.3 Java API解析/ 44
3.3.1 作業(yè)配置與提交/ 44
3.3.2 InputFormat接口的設(shè)計與實(shí)現(xiàn)/ 48
3.3.3 OutputFormat接口的設(shè)計與實(shí)現(xiàn)/ 53
3.3.4 Mapper與Reducer解析/ 55
3.3.5 Partitioner接口的設(shè)計與實(shí)現(xiàn)/ 59
3.4 非Java API解析/ 61
3.4.1 Hadoop Streaming的實(shí)現(xiàn)原理/ 61
3.4.2 Hadoop Pipes的實(shí)現(xiàn)原理/ 64
3.5 Hadoop工作流/ 67
3.5.1 JobControl的實(shí)現(xiàn)原理/ 67
3.5.2 ChainMapper/ChainReducer的實(shí)現(xiàn)原理/ 69
3.5.3 Hadoop工作流引擎/ 71
3.6 小結(jié)/ 73
第三部分 MapReduce核心設(shè)計篇
第4章 Hadoop RPC框架解析/ 76
4.1 Hadoop RPC框架概述/ 76
4.2 Java基礎(chǔ)知識/ 77
4.2.1 Java反射機(jī)制與動態(tài)代理/ 78
4.2.2 Java網(wǎng)絡(luò)編程/ 80
4.2.3 Java NIO/ 82
4.3 Hadoop RPC基本框架分析/ 89
4.3.1 RPC基本概念/ 89
4.3.2 Hadoop RPC基本框架/ 91
4.3.3 集成其他開源RPC框架/ 98
4.4 MapReduce通信協(xié)議分析/ 100
4.4.1 MapReduce 通信協(xié)議概述/ 100
4.4.2 JobSubmissionProtocol通信協(xié)議/ 102
4.4.3 InterTrackerProtocol通信協(xié)議/ 102
4.4.4 TaskUmbilicalProtocol通信協(xié)議/ 103
4.4.5 其他通信協(xié)議/ 104
4.5 小結(jié)/ 106
第5章 作業(yè)提交與初始化過程分析/ 107
5.1 作業(yè)提交與初始化概述/ 107
5.2 作業(yè)提交過程詳解/ 108
5.2.1 執(zhí)行Shell命令/ 108
5.2.2 作業(yè)文件上傳/ 109
5.2.3 產(chǎn)生InputSplit文件/ 111
5.2.4 作業(yè)提交到JobTracker/ 113
5.3 作業(yè)初始化過程詳解/ 115
5.4 Hadoop DistributedCache原理分析/ 117
5.4.1 使用方法介紹/ 118
5.4.2 工作原理分析/ 120
5.5 小結(jié)/ 122
第6章 JobTracker內(nèi)部實(shí)現(xiàn)剖析/ 123
6.1 JobTracker概述/ 123
6.2 JobTracker啟動過程分析/ 125
6.2.1 JobTracker啟動過程概述/ 125
6.2.2 重要對象初始化/ 125
6.2.3 各種線程功能/ 128
6.2.4 作業(yè)恢復(fù)/ 129
6.3 心跳接收與應(yīng)答/ 129
6.3.1 更新狀態(tài)/ 131
6.3.2 下達(dá)命令/ 131
6.4 Job和Task運(yùn)行時信息維護(hù)/ 134
6.4.1 作業(yè)描述模型/ 134
6.4.2 JobInProgress/ 136
6.4.3 TaskInProgress/ 137
6.4.4 作業(yè)和任務(wù)狀態(tài)轉(zhuǎn)換圖/ 139
6.5 容錯機(jī)制/ 141
6.5.1 JobTracker容錯/ 141
6.5.2 TaskTracker容錯/ 142
6.5.3 Job/Task容錯/ 145
6.5.4 Record容錯/ 147
6.5.5 磁盤容錯/ 151
6.6 任務(wù)推測執(zhí)行原理/ 152
6.6.1 計算模型假設(shè)/ 153
6.6.2 1.0.0版本的算法/ 153
6.6.3 0.21.0版本的算法/ 154
6.6.4 2.0版本的算法/ 156
6.7 Hadoop資源管理/ 157
6.7.1 任務(wù)調(diào)度框架分析/ 159
6.7.2 任務(wù)選擇策略分析/ 162
6.7.3 FIFO調(diào)度器分析/ 164
6.7.4 Hadoop資源管理優(yōu)化/ 165
6.8 小結(jié)/ 168
第7章 TaskTracker內(nèi)部實(shí)現(xiàn)剖析/ 169
7.1 TaskTracker概述/ 169
7.2 TaskTracker啟動過程分析/ 170
7.2.1 重要變量初始化/ 171
7.2.2 重要對象初始化/ 171
7.2.3 連接JobTracker/ 172
7.3 心跳機(jī)制/ 172
7.3.1 單次心跳發(fā)送/ 172
7.3.2 狀態(tài)發(fā)送/ 175
7.3.3 命令執(zhí)行/ 178
7.4 TaskTracker行為分析/ 179
7.4.1 啟動新任務(wù)/ 179
7.4.2 提交任務(wù)/ 179
7.4.3 殺死任務(wù)/ 181
7.4.4 殺死作業(yè)/ 182
7.4.5 重新初始化/ 184
7.5 作業(yè)目錄管理/ 184
7.6 啟動新任務(wù)/ 186
7.6.1 任務(wù)啟動過程分析/ 186
7.6.2 資源隔離機(jī)制/ 193
7.7 小結(jié)/ 195
第8章 Task運(yùn)行過程分析/ 196
8.1 Task運(yùn)行過程概述/ 196
8.2 基本數(shù)據(jù)結(jié)構(gòu)和算法/ 197
8.2.1 IFile存儲格式/ 197
8.2.2 排序/ 198
8.2.3 Reporter/ 201
8.3 Map Task內(nèi)部實(shí)現(xiàn)/ 204
8.3.1 Map Task整體流程/ 204
8.3.2 Collect過程分析/ 205
8.3.3 Spill過程分析/ 213
8.3.4 Combine過程分析/ 214
8.4 Reduce Task內(nèi)部實(shí)現(xiàn)/ 214
8.4.1 Reduce Task整體流程/ 215
8.4.2 Shuffle和Merge階段分析/ 215
8.4.3 Sort和Reduce階段分析/ 218
8.5 Map/Reduce Task優(yōu)化/ 219
8.5.1 參數(shù)調(diào)優(yōu)/ 219
8.5.2 系統(tǒng)優(yōu)化/ 220
8.6 小結(jié)/ 224
第四部分 MapReduce高級篇
第9章 Hadoop性能調(diào)優(yōu)/ 228
9.1 概述/ 228
9.2 從管理員角度進(jìn)行調(diào)優(yōu)/ 229
9.2.1 硬件選擇/ 229
9.2.2 操作系統(tǒng)參數(shù)調(diào)優(yōu)/ 229
9.2.3 JVM參數(shù)調(diào)優(yōu)/ 230
9.2.4 Hadoop參數(shù)調(diào)優(yōu)/ 230
9.3 從用戶角度進(jìn)行調(diào)優(yōu)/ 235
9.3.1 應(yīng)用程序編寫規(guī)范/ 235
9.3.2 作業(yè)級別參數(shù)調(diào)優(yōu)/ 235
9.3.3 任務(wù)級別參數(shù)調(diào)優(yōu)/ 239
9.4 小結(jié)/ 240
第10章 Hadoop多用戶作業(yè)調(diào)度器/ 241
10.1 多用戶調(diào)度器產(chǎn)生背景/ 241
10.2 HOD/ 242
10.2.1 Torque資源管理器/ 242
10.2.2 HOD作業(yè)調(diào)度/ 243
10.3 Hadoop隊(duì)列管理機(jī)制/ 245
10.4 Capacity Scheduler實(shí)現(xiàn)/ 246
10.4.1 Capacity Scheduler功能介紹/ 247
10.4.2 Capacity Scheduler實(shí)現(xiàn)/ 249
10.4.3 多層隊(duì)列調(diào)度/ 254
10.5 Fair Scheduler實(shí)現(xiàn)/ 255
10.5.1 Fair Scheduler功能介紹/ 255
10.5.2 Fair Scheduler實(shí)現(xiàn)/ 258
10.5.3 Fair Scheduler與Capacity Scheduler對比/ 263
10.6 其他Hadoop調(diào)度器介紹/ 264
10.7 小結(jié)/ 265
第11章 Hadoop安全機(jī)制/ 266
11.1 Hadoop安全機(jī)制概述/ 266
11.1.1 Hadoop面臨的安全問題/ 266
11.1.2 Hadoop對安全方面的需求/ 267
11.1.3 Hadoop安全設(shè)計基本原則/ 267
11.2 基礎(chǔ)知識/ 268
11.2.1 安全認(rèn)證機(jī)制/ 268
11.2.2 Kerberos介紹/ 270
11.3 Hadoop安全機(jī)制實(shí)現(xiàn)/ 273
11.3.1 RPC/ 273
11.3.2 HDFS/ 276
11.3.3 MapReduce/ 278
11.3.4 上層服務(wù)/ 280
11.4 應(yīng)用場景總結(jié)/ 281
11.4.1 文件存取/ 281
11.4.2 作業(yè)提交與運(yùn)行/ 282
11.4.3 上層中間件訪問Hadoop/ 282
11.5 小結(jié)/ 283
第12章 下一代MapReduce框架/ 284
12.1 第一代MapReduce框架的局限性/ 284
12.2 下一代MapReduce框架概述/ 284
12.2.1 基本設(shè)計思想/ 284
12.2.2 資源統(tǒng)一管理平臺/ 286
12.3 Apache YARN/ 287
12.3.1 Apache YARN基本框架/ 287
12.3.2 Apache YARN工作流程/ 290
12.3.3 Apache YARN設(shè)計細(xì)節(jié)/ 291
12.3.4 MapReduce與YARN結(jié)合/ 294
12.4 Facebook Corona / 298
12.4.1 Facebook Corona基本框架/ 298
12.4.2 Facebook Corona工作流程/ 300
12.4.3 YARN與Corona對比/ 303
12.5 Apache Mesos/ 304
12.5.1 Apache Mesos基本框架/ 304
12.5.2 Apache Mesos資源分配/ 305
12.5.3 MapReduce與Mesos結(jié)合/ 307
12.6 小結(jié)/ 309
附錄A 安裝Hadoop過程中可能存在的問題及解決方案/ 310
附錄B Hadoop默認(rèn)HTTP端口號以及HTTP地址/ 312
參考資料/ 313

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號