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

Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現原理

Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現原理

定 價:¥89.00

作 者: 蔡斌,陳湘萍 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 編程語言與程序設計 計算機與互聯網

ISBN: 9787111417668 出版時間: 2013-04-15 包裝: 平裝
開本: 16 頁數: 字數:  

內容簡介

  本書主要分為三個部分。 第一部分(第1章)對如何建立Hadoop的開發(fā)、分析環(huán)境做了簡單的介紹。對于Hadoop這樣復雜、龐大的項目,一個好的開發(fā)環(huán)境可以讓讀者事半功倍地學習、研究源代碼。 第二部分(第2~5章)主要對Hadoop公共工具Common的實現進行研究。分別介紹了Hadoop的配置系統(tǒng)、面向海量數據處理的序列化和壓縮機制、Hadoop使用的遠程過程調用,以及滿足Hadoop上各類應用訪問數據的Hadoop抽象文件系統(tǒng)和部分具體文件系統(tǒng)。 第三部分(第6~9章)對Hadoop分布式文件系統(tǒng)進行了詳細的分析。這部分內容采用總-分-總的結構,第6章介紹了HDFS各個實體和實體間接口,第7章和第8章分別詳細地研究了數據節(jié)點和名字節(jié)點的實現原理,第9章通過對客戶端的解析,回顧HDFS各節(jié)點間的配合,完整地介紹了一個大規(guī)模數據存儲系統(tǒng)的實現。 通過本書,讀者不僅能全面了解Hadoop的優(yōu)秀架構和設計思想,而且還能從Hadoop,特別是HDFS的實現源碼中一窺Java開發(fā)的精髓和分布式系統(tǒng)的精要??闭`和支持 由于作者的水平有限,編寫時間跨度較長,同時開源軟件的演化較快,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。如果大家有和本書相關的內容需要探討,或有更多的寶貴意見,歡迎通過caibinbupt@qq.com和我們聯系,希望能結識更多的朋友,大家共同進步。書中的源代碼文件可以從華章網站下載。致謝 感謝機械工業(yè)出版社華章公司的編輯楊福川和白宇,楊老師的耐心和支持讓本書最終得以出版,白老師的很多建議使本書的可讀性更強。 感謝騰訊數據平臺部的張文郁、趙重慶和徐釗,作為本書的第一批讀者和Hadoop專家,他們的反饋意見讓本書增色不少。 感謝和我們一起工作、研究和應用Hadoop的騰訊數據平臺部,以及IBM中國研究中心和中山大學的領導和同事們,本書的很多內容是對實際項目的總結。最后,作者向支持本書寫作的家人深表謝意,感謝他們的耐心和理解。

作者簡介

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

圖書目錄

前 言
第一部分 環(huán)境準備
第1章 源代碼環(huán)境準備/ 2
1.1 什么是Hadoop / 2
1.1.1 Hadoop簡史/ 2
1.1.2 Hadoop的優(yōu)勢/ 3
1.1.3 Hadoop生態(tài)系統(tǒng)/ 4
1.2 準備源代碼閱讀環(huán)境/ 8
1.2.1 安裝與配置JDK / 8
1.2.2 安裝Eclipse / 9
1.2.3 安裝輔助工具Ant/ 12
1.2.4 安裝類UNIX Shell環(huán)境Cygwin / 13
1.3 準備Hadoop源代碼/ 15
1.3.1 下載Hadoop / 15
1.3.2 創(chuàng)建Eclipse項目/ 16
1.3.3 Hadoop源代碼組織/ 18
1.4 小結/ 19
第二部分 Common的實現
第2章 Hadoop配置信息處理/ 22
2.1 配置文件簡介/ 22
2.1.1 Windows操作系統(tǒng)的配置文件/ 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動態(tài)代理/ 78
4.2.1 創(chuàng)建代理接口/ 78
4.2.2 調用轉發(fā)/ 80
4.2.3 動態(tài)代理實例/ 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構建簡單的分布式系統(tǒng)/ 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文件系統(tǒng)/ 142
5.1 文件系統(tǒng)/ 142
5.1.1 文件系統(tǒng)的用戶界面/ 142
5.1.2 文件系統(tǒng)的實現/ 145
5.1.3 文件系統(tǒng)的保護控制/ 147
5.2 Linux文件系統(tǒng)/ 150
5.2.1 Linux本地文件系統(tǒng)/ 150
5.2.2 虛擬文件系統(tǒng)/ 153
5.2.3 Linux文件保護機制/ 154
5.2.4 Linux文件系統(tǒng)API/ 155
5.3 分布式文件系統(tǒng)/ 159
5.3.1 分布式文件系統(tǒng)的特性/ 159
5.3.2 基本NFS體系結構/ 160
5.3.3 NFS支持的文件操作/ 160
5.4 Java文件系統(tǒng)/ 162
5.4.1 Java文件系統(tǒng)API / 162
5.4.2 URI和URL / 164
5.4.3 Java輸入/輸出流/ 166
5.4.4 隨機存取文件/ 169
5.5 Hadoop抽象文件系統(tǒng)/ 170
5.5.1 Hadoop文件系統(tǒng)API / 170
5.5.2 Hadoop輸入/輸出流/ 175
5.5.3 Hadoop文件系統(tǒng)中的權限/ 179
5.5.4 抽象文件系統(tǒng)中的靜態(tài)方法/ 180
5.5.5 Hadoop文件系統(tǒng)中的協議處理器/ 184
5.6 Hadoop具體文件系統(tǒng)/ 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分布式文件系統(tǒng)
第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 數據節(jié)點上的非IPC接口/ 245
6.3.2 名字節(jié)點和第二名字節(jié)點上的非IPC接口/ 252
6.4 HDFS主要流程/ 254
6.4.1 客戶端到名字節(jié)點的文件與目錄操作/ 254
6.4.2 客戶端讀文件/ 256
6.4.3 客戶端寫文件/ 257
6.4.4 數據節(jié)點的啟動和心跳/ 258
6.4.5 第二名字節(jié)點合并元數據/ 259
6.5 小結/ 261
第7章 數據節(jié)點實現/ 263
7.1 數據塊存儲/ 263
7.1.1 數據節(jié)點的磁盤目錄文件結構/ 263
7.1.2 數據節(jié)點存儲的實現/ 266
7.1.3 數據節(jié)點升級/ 269
7.1.4 文件系統(tǒng)數據集的工作機制/ 276
7.2 流式接口的實現/ 285
7.2.1 DataXceiverServer和DataXceiver / 286
7.2.2 讀數據/ 289
7.2.3 寫數據/ 298
7.2.4 數據塊替換、數據塊拷貝和讀數據塊檢驗信息/ 313
7.3 作為整體的數據節(jié)點/ 314
7.3.1 數據節(jié)點和名字節(jié)點的交互/ 314
7.3.2 數據塊掃描器/ 319
7.3.3 數據節(jié)點的啟停/ 321
7.4 小結/ 326
第8章 名字節(jié)點實現/ 327
8.1 文件系統(tǒng)的目錄樹/ 327
8.1.1 從i-node到INode/ 327
8.1.2 命名空間鏡像和編輯日志/ 333
8.1.3 第二名字節(jié)點/ 351
8.1.4 FSDirectory的實現/ 361
8.2 數據塊和數據節(jié)點管理/ 365
8.2.1 數據結構/ 366
8.2.2 數據節(jié)點管理/ 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 名字節(jié)點的啟動和停止/ 444
8.4.1 安全模式/ 444
8.4.2 名字節(jié)點的啟動/ 449
8.4.3 名字節(jié)點的停止/ 454
8.5 小結/ 454
第9章 HDFS客戶端/ 455
9.1 認識DFSClient / 455
9.1.1 DFSClient的構造和關閉/ 455
9.1.2 文件和目錄、系統(tǒng)管理相關事務/ 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 寫數據前的準備:創(chuàng)建文件/ 481
9.3.2 寫數據:數據流管道的建立/ 482
9.3.3 寫數據:數據包的發(fā)送/ 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

本目錄推薦

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