Hadoop技術內幕

Hadoop技術內幕

《Hadoop技術內幕》是2013年機械工業出版社出版的圖書,作者蔡斌、陳湘萍。本書共兩冊,分別從原始碼的角度對“Common+HDFS”和MapReduce的架構設計與實現原理進行了極為詳細的分析。

基本介紹

  • 作者:蔡斌,陳湘萍
  • ISBN:9787111417668
  • 頁數:512
  • 定價:89.00元
  • 出版社:機械工業出版社
  • 出版時間:2013-4
  • 叢書:  Hadoop技術內幕
內容介紹,作者介紹,作品目錄,

內容介紹

《Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現原理》由騰訊數據平台的資深Hadoop專家、X-RIME的作者親自執筆,對Common和HDFS的原始碼進行了分析,旨在為Hadoop的最佳化、定製和擴展提供原理性的指導。除此之外,《Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現原理》還從原始碼實現中對分散式技術的精髓、分散式系統設計的優秀思想和方法,以及Java語言的編碼技巧、編程規範和對設計模式的精妙運用進行了總結和分析,對提高讀者的分散式技術能力和Java編程能力都非常有幫助。《Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現原理》適合Hadoop的二次開發人員、套用開發工程師、運維工程師閱讀。
全書共9章,分為三部分:第一部分(第1章)主要介紹了Hadoop原始碼的獲取和原始碼閱讀環境的搭建;第二部分(第2~5章)對Hadoop公共工具Common的架構設計和實現原理進行了深入分析,包含Hadoop的配置信息處理、面向海量數據處理的序列化和壓縮機制、Hadoop的遠程過程調用,以及滿足Hadoop上各類套用訪問數據的Hadoop抽象檔案系統和部分具體檔案系統等內容;第三部分(第6~9章)對Hadoop的分散式檔案系統HDFS的架構設計和實現原理進行了詳細的分析,這部分內容採用了總分總的結構,第6章對HDFS的各個實體和實體間接口進行了分析;第7章和第8章分別詳細地研究了數據節點和名位元組點的實現原理,並通過第9章對客戶端的解析,回顧了HDFS各節點間的配合,完整地介紹了一個大規模數據存儲系統的實現。
海報:

作者介紹

蔡斌,資深Hadoop技術專家,基於Hadoop的開源項目X-RIME的作者之一。國內Hadoop套用和原始碼研究領域的先驅之一,有10餘年開發經驗,先後任職於朗訊科技、IBM中國研究院等國內外知名企業,目前擔任騰訊數據平台部的高級工程師,從事Hadoop相關技術的研究、套用和實施,實戰經驗非常豐富。對分散式計算、電信增值業務、網路管理等領域有深刻的認識和理解,擁有近10項發明專利,其中兩項為美國專利,大部分與海量數據處理相關。近期關注海量數據的流式處理、Hadoop上的大數據套用與挖掘等。
陳湘萍,北京大學計算機系博士,目前就職於中山大學,專注於Hadoop、雲計算、軟體中間件、模型驅動的軟體工程等技術的研究和實踐。擁有發明專利5項,參與1項國家電子行業標準的制定,發表學術論文10餘篇。

作品目錄

前 言
第一部分 環境準備
第1章 原始碼環境準備/ 2
1.1 什麼是Hadoop / 2
1.1.1 Hadoop簡史/ 2
1.1.2 Hadoop的優勢/ 3
1.1.3 Hadoop生態系統/ 4
1.2 準備原始碼閱讀環境/ 8
1.2.1 安裝與配置JDK / 8
1.2.2 安裝Eclipse / 9
1.2.3 安裝輔助工具Ant/ 12
1.2.4 安裝類UNIX Shell環境Cygwin / 13
1.3 準備Hadoop原始碼/ 15
1.3.1 下載Hadoop / 15
1.3.2 創建Eclipse項目/ 16
1.3.3 Hadoop原始碼組織/ 18
1.4 小結/ 19
第二部分 Common的實現
第2章 Hadoop配置信息處理/ 22
2.1 配置檔案簡介/ 22
2.1.1 Windows作業系統的配置檔案/ 22
2.1.2 Java配置檔案/ 23
2.2 Hadoop Configuration詳解/ 24
2.2.1 Hadoop配置檔案的格式/ 24
2.2.2 Configuration的成員變數/ 26
2.2.3 資源載入/ 27
2.2.4 使用get*和set*訪問/設定配置項/ 32
2.3 Configurable接口/ 34
2.4 小結/ 35
第3章 序列化與壓縮/ 36
3.1 序列化/ 36
3.1.1 Java內建序列化機制/ 36
3.1.2 Hadoop序列化機制/ 38
3.1.3 Hadoop序列化機制的特徵/ 39
3.1.4 Hadoop Writable機制/ 39
3.1.5 典型的Writable類詳解/ 41
3.1.6 Hadoop序列化框架/ 48
3.2 壓縮/ 49
3.2.1 Hadoop壓縮簡介/ 50
3.2.2 Hadoop壓縮API套用實例/ 51
3.2.3 Hadoop壓縮框架/ 52
3.2.4 Java本地方法/ 61
3.2.5 支持Snappy壓縮/ 65
3.3 小結/ 69
第4章 Hadoop遠程過程調用/ 70
4.1 遠程過程調用基礎知識/ 70
4.1.1 RPC原理/ 70
4.1.2 RPC機制的實現/ 72
4.1.3 Java遠程方法調用/ 73
4.2 Java動態代理/ 78
4.2.1 創建代理接口/ 78
4.2.2 調用轉發/ 80
4.2.3 動態代理實例/ 81
4.3 Java NIO/ 84
4.3.1 Java基本套接字/ 84
4.3.2 Java NIO基礎/ 86
4.3.3 Java NIO實例:回顯伺服器/ 93
4.4 Hadoop中的遠程過程調用/ 96
4.4.1 利用Hadoop IPC構建簡單的分散式系統/ 96
4.4.2 Hadoop IPC的代碼結構/ 100
4.5 Hadoop IPC連線相關過程/ 104
4.5.1 IPC連線成員變數/ 104
4.5.2 建立IPC連線/ 106
4.5.3 數據分幀和讀寫/ 111
4.5.4 維護IPC連線/ 114
4.5.5 關閉IPC連線/ 116
4.6 Hadoop IPC方法調用相關過程/ 118
4.6.1 Java接口與接口體/ 119
4.6.2 IPC方法調用成員變數/ 121
4.6.3 客戶端方法調用過程/ 123
4.6.4 伺服器端方法調用過程/ 126
4.7 Hadoop IPC上的其他輔助過程/ 135
4.7.1 RPC.getProxy()和RPC.stopProxy() / 136
4.7.2 RPC.getServer()和Server的啟停/ 138
4.8 小結/ 141
第5章 Hadoop檔案系統/ 142
5.1 檔案系統/ 142
5.1.1 檔案系統的用戶界面/ 142
5.1.2 檔案系統的實現/ 145
5.1.3 檔案系統的保護控制/ 147
5.2 Linux檔案系統/ 150
5.2.1 Linux本地檔案系統/ 150
5.2.2 虛擬檔案系統/ 153
5.2.3 Linux檔案保護機制/ 154
5.2.4 Linux檔案系統API/ 155
5.3 分散式檔案系統/ 159
5.3.1 分散式檔案系統的特性/ 159
5.3.2 基本NFS體系結構/ 160
5.3.3 NFS支持的檔案操作/ 160
5.4 Java檔案系統/ 162
5.4.1 Java檔案系統API / 162
5.4.2 URI和URL / 164
5.4.3 Java輸入/輸出流/ 166
5.4.4 隨機存取檔案/ 169
5.5 Hadoop抽象檔案系統/ 170
5.5.1 Hadoop檔案系統API / 170
5.5.2 Hadoop輸入/輸出流/ 175
5.5.3 Hadoop檔案系統中的許可權/ 179
5.5.4 抽象檔案系統中的靜態方法/ 180
5.5.5 Hadoop檔案系統中的協定處理器/ 184
5.6 Hadoop具體檔案系統/ 188
5.6.1 FileSystem層次結構/ 189
5.6.2 RawLocalFileSystem的實現/ 191
5.6.3 ChecksumFileSystem的實現/ 196
5.6.4 RawInMemoryFileSystem的實現/ 210
5.7 小結/ 213
第三部分 Hadoop分散式檔案系統
第6章 HDFS概述/ 216
6.1 初識HDFS / 216
6.1.1 HDFS主要特性/ 216
6.1.2 HDFS體系結構/ 217
6.1.3 HDFS原始碼結構/ 221
6.2 基於遠程過程調用的接口/ 223
6.2.1 與客戶端相關的接口/ 224
6.2.2 HDFS各伺服器間的接口/ 236
6.3 非遠程過程調用接口/ 244
6.3.1 數據節點上的非IPC接口/ 245
6.3.2 名位元組點和第二名位元組點上的非IPC接口/ 252
6.4 HDFS主要流程/ 254
6.4.1 客戶端到名位元組點的檔案與目錄操作/ 254
6.4.2 客戶端讀檔案/ 256
6.4.3 客戶端寫檔案/ 257
6.4.4 數據節點的啟動和心跳/ 258
6.4.5 第二名位元組點合併元數據/ 259
6.5 小結/ 261
第7章 數據節點實現/ 263
7.1 數據塊存儲/ 263
7.1.1 數據節點的磁碟目錄檔案結構/ 263
7.1.2 數據節點存儲的實現/ 266
7.1.3 數據節點升級/ 269
7.1.4 檔案系統數據集的工作機制/ 276
7.2 流式接口的實現/ 285
7.2.1 DataXceiverServer和DataXceiver / 286
7.2.2 讀數據/ 289
7.2.3 寫數據/ 298
7.2.4 數據塊替換、數據塊拷貝和讀數據塊檢驗信息/ 313
7.3 作為整體的數據節點/ 314
7.3.1 數據節點和名位元組點的互動/ 314
7.3.2 數據塊掃描器/ 319
7.3.3 數據節點的啟停/ 321
7.4 小結/ 326
第8章 名位元組點實現/ 327
8.1 檔案系統的目錄樹/ 327
8.1.1 從i-node到INode/ 327
8.1.2 命名空間鏡像和編輯日誌/ 333
8.1.3 第二名位元組點/ 351
8.1.4 FSDirectory的實現/ 361
8.2 數據塊和數據節點管理/ 365
8.2.1 數據結構/ 366
8.2.2 數據節點管理/ 378
8.2.3 數據塊管理/ 392
8.3 遠程接口ClientProtocol的實現/ 412
8.3.1 檔案和目錄相關事務/ 412
8.3.2 讀數據使用的方法/ 415
8.3.3 寫數據使用的方法/ 419
8.3.4 工具dfsadmin依賴的方法/ 443
8.4 名位元組點的啟動和停止/ 444
8.4.1 安全模式/ 444
8.4.2 名位元組點的啟動/ 449
8.4.3 名位元組點的停止/ 454
8.5 小結/ 454
第9章 HDFS客戶端/ 455
9.1 認識DFSClient / 455
9.1.1 DFSClient的構造和關閉/ 455
9.1.2 檔案和目錄、系統管理相關事務/ 457
9.1.3 刪除HDFS檔案/目錄的流程/ 459
9.2 輸入流/ 461
9.2.1 讀數據前的準備:打開檔案/ 463
9.2.2 讀數據/ 465
9.2.3 關閉輸入流/ 475
9.2.4 讀取HDFS檔案數據的流程/ 475
9.3 輸出流/ 478
9.3.1 寫數據前的準備:創建檔案/ 481
9.3.2 寫數據:數據流管道的建立/ 482
9.3.3 寫數據:數據包的傳送/ 486
9.3.4 寫數據:數據流管道出錯處理/ 493
9.3.5 寫數據:租約更新/ 496
9.3.6 寫數據:DFSOutputStream.sync()的作用/ 497
9.3.7 關閉輸出流/ 499
9.3.8 向HDFS檔案寫入數據的流程/ 500
9.4 DistributedFileSystem的實現/ 506
9.5 HDFS常用工具/ 508
9.5.1 FsShell / 508
9.5.2 DFSAdmin / 510
9.6 小結/ 511

相關詞條

熱門詞條

聯絡我們