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

Hadoop技術內幕:深入解析MapReduce架構設計與實現(xiàn)原理

Hadoop技術內幕:深入解析MapReduce架構設計與實現(xiàn)原理

定 價:¥69.00

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

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

內容簡介

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

作者簡介

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

圖書目錄

前 言
第一部分 基礎篇
第1章 閱讀源代碼前的準備/ 2
1.1 準備源代碼學習環(huán)境/ 2
1.1.1 基礎軟件下載/ 2
1.1.2 如何準備Windows環(huán)境/ 3
1.1.3 如何準備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源代碼組織結構/ 10
1.5 Hadoop初體驗/ 13
1.5.1 啟動Hadoop/ 13
1.5.2 Hadoop Shell介紹/ 15
1.5.3 Hadoop Eclipse插件介紹/ 15
1.6 編譯及調試Hadoop源代碼/ 19
1.6.1 編譯Hadoop源代碼/ 19
1.6.2 調試Hadoop源代碼/ 20
1.7 小結/ 23
第2章 MapReduce設計理念與基本架構/ 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設計目標/ 28
2.3 MapReduce編程模型概述/ 29
2.3.1 MapReduce編程模型簡介/ 29
2.3.2 MapReduce編程實例/ 31
2.4 Hadoop基本架構/ 32
2.4.1 HDFS架構/ 33
2.4.2 Hadoop MapReduce架構/ 34
2.5 Hadoop MapReduce作業(yè)的生命周期/ 36
2.6 小結/ 38
第二部分 MapReduce編程模型篇
第3章 MapReduce編程模型/ 40
3.1 MapReduce編程模型概述/ 40
3.1.1 MapReduce編程接口體系結構/ 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 回調機制/ 43
3.3 Java API解析/ 44
3.3.1 作業(yè)配置與提交/ 44
3.3.2 InputFormat接口的設計與實現(xiàn)/ 48
3.3.3 OutputFormat接口的設計與實現(xiàn)/ 53
3.3.4 Mapper與Reducer解析/ 55
3.3.5 Partitioner接口的設計與實現(xiàn)/ 59
3.4 非Java API解析/ 61
3.4.1 Hadoop Streaming的實現(xiàn)原理/ 61
3.4.2 Hadoop Pipes的實現(xiàn)原理/ 64
3.5 Hadoop工作流/ 67
3.5.1 JobControl的實現(xiàn)原理/ 67
3.5.2 ChainMapper/ChainReducer的實現(xiàn)原理/ 69
3.5.3 Hadoop工作流引擎/ 71
3.6 小結/ 73
第三部分 MapReduce核心設計篇
第4章 Hadoop RPC框架解析/ 76
4.1 Hadoop RPC框架概述/ 76
4.2 Java基礎知識/ 77
4.2.1 Java反射機制與動態(tài)代理/ 78
4.2.2 Java網(wǎng)絡編程/ 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 小結/ 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 小結/ 122
第6章 JobTracker內部實現(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è)恢復/ 129
6.3 心跳接收與應答/ 129
6.3.1 更新狀態(tài)/ 131
6.3.2 下達命令/ 131
6.4 Job和Task運行時信息維護/ 134
6.4.1 作業(yè)描述模型/ 134
6.4.2 JobInProgress/ 136
6.4.3 TaskInProgress/ 137
6.4.4 作業(yè)和任務狀態(tài)轉換圖/ 139
6.5 容錯機制/ 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 任務推測執(zhí)行原理/ 152
6.6.1 計算模型假設/ 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 任務調度框架分析/ 159
6.7.2 任務選擇策略分析/ 162
6.7.3 FIFO調度器分析/ 164
6.7.4 Hadoop資源管理優(yōu)化/ 165
6.8 小結/ 168
第7章 TaskTracker內部實現(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 心跳機制/ 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 啟動新任務/ 179
7.4.2 提交任務/ 179
7.4.3 殺死任務/ 181
7.4.4 殺死作業(yè)/ 182
7.4.5 重新初始化/ 184
7.5 作業(yè)目錄管理/ 184
7.6 啟動新任務/ 186
7.6.1 任務啟動過程分析/ 186
7.6.2 資源隔離機制/ 193
7.7 小結/ 195
第8章 Task運行過程分析/ 196
8.1 Task運行過程概述/ 196
8.2 基本數(shù)據(jù)結構和算法/ 197
8.2.1 IFile存儲格式/ 197
8.2.2 排序/ 198
8.2.3 Reporter/ 201
8.3 Map Task內部實現(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內部實現(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ù)調優(yōu)/ 219
8.5.2 系統(tǒng)優(yōu)化/ 220
8.6 小結/ 224
第四部分 MapReduce高級篇
第9章 Hadoop性能調優(yōu)/ 228
9.1 概述/ 228
9.2 從管理員角度進行調優(yōu)/ 229
9.2.1 硬件選擇/ 229
9.2.2 操作系統(tǒng)參數(shù)調優(yōu)/ 229
9.2.3 JVM參數(shù)調優(yōu)/ 230
9.2.4 Hadoop參數(shù)調優(yōu)/ 230
9.3 從用戶角度進行調優(yōu)/ 235
9.3.1 應用程序編寫規(guī)范/ 235
9.3.2 作業(yè)級別參數(shù)調優(yōu)/ 235
9.3.3 任務級別參數(shù)調優(yōu)/ 239
9.4 小結/ 240
第10章 Hadoop多用戶作業(yè)調度器/ 241
10.1 多用戶調度器產(chǎn)生背景/ 241
10.2 HOD/ 242
10.2.1 Torque資源管理器/ 242
10.2.2 HOD作業(yè)調度/ 243
10.3 Hadoop隊列管理機制/ 245
10.4 Capacity Scheduler實現(xiàn)/ 246
10.4.1 Capacity Scheduler功能介紹/ 247
10.4.2 Capacity Scheduler實現(xiàn)/ 249
10.4.3 多層隊列調度/ 254
10.5 Fair Scheduler實現(xiàn)/ 255
10.5.1 Fair Scheduler功能介紹/ 255
10.5.2 Fair Scheduler實現(xiàn)/ 258
10.5.3 Fair Scheduler與Capacity Scheduler對比/ 263
10.6 其他Hadoop調度器介紹/ 264
10.7 小結/ 265
第11章 Hadoop安全機制/ 266
11.1 Hadoop安全機制概述/ 266
11.1.1 Hadoop面臨的安全問題/ 266
11.1.2 Hadoop對安全方面的需求/ 267
11.1.3 Hadoop安全設計基本原則/ 267
11.2 基礎知識/ 268
11.2.1 安全認證機制/ 268
11.2.2 Kerberos介紹/ 270
11.3 Hadoop安全機制實現(xiàn)/ 273
11.3.1 RPC/ 273
11.3.2 HDFS/ 276
11.3.3 MapReduce/ 278
11.3.4 上層服務/ 280
11.4 應用場景總結/ 281
11.4.1 文件存取/ 281
11.4.2 作業(yè)提交與運行/ 282
11.4.3 上層中間件訪問Hadoop/ 282
11.5 小結/ 283
第12章 下一代MapReduce框架/ 284
12.1 第一代MapReduce框架的局限性/ 284
12.2 下一代MapReduce框架概述/ 284
12.2.1 基本設計思想/ 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設計細節(jié)/ 291
12.3.4 MapReduce與YARN結合/ 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結合/ 307
12.6 小結/ 309
附錄A 安裝Hadoop過程中可能存在的問題及解決方案/ 310
附錄B Hadoop默認HTTP端口號以及HTTP地址/ 312
參考資料/ 313

本目錄推薦

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