-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Hadoop 2.X HDFS源碼剖析

( 簡體 字)
作者:徐鵬類別:1. -> 程式設計 -> 雲計算
譯者:
出版社:電子工業出版社Hadoop 2.X HDFS源碼剖析 3dWoo書號: 43586
詢問書籍請說出此書號!

缺書
NT售價: 540

出版日:3/1/2016
頁數:516
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121281556
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

前 言
今天Hadoop已經成為大數據處理中十分重要的平臺,一個以Hadoop為基礎的活躍的開源生態圈已經逐步形成,Hadoop的應用也由最初的互聯網行業發展到金融行業、電信行業、IT設備商以及數以萬計的中小企業。Hadoop的HDFS組件(Hadoop分布式文件系統)以及MapReduce組件分別為上層框架提供了分布式存儲和計算的能力。
HDFS作為Hadoop中解決分布式存儲的基礎組件,最早是根據GFS(Google File System)論文的概念模型來設計實現的。然而,隨著HDFS上層框架的豐富以及應用場景的擴展,用戶對HDFS的功能、性能、穩定性、擴展性以及可靠性的要求越來越高,HDFS 2.X版本也就應運而生。相對于HDFS 1.X,HDFS 2.X版本提出了很多振奮人心的新特性,如Namenode HA、Federation Namenode、集中式緩存、快照等。但令人惋惜的是,至今還沒有一本能夠深入剖析HDFS 2.X內部實現細節,以及介紹HDFS 2.X新特性的書籍。本書的出現填補了上述空白,它是國內第一本深入剖析HDFS 2.X源碼實現的書籍。
本書以Hadoop 2.6.0源碼為基礎,深入剖析了HDFS 2.X中各個模塊的實現細節,包括RPC框架實現、Namenode實現、Datanode實現以及HDFS客戶端實現等。閱讀本書可以幫助讀者從架構設計與源碼實現角度了解HDFS 2.X,同時還能學習HDFS 2.X框架中優秀的設計思想、設計模式、Java語言技巧以及編程規范等。這些對于讀者全面提高自己的技術水平有很大的幫助。
如何閱讀本書
由于篇幅原因,本書并沒有介紹HDFS實現中的一些基礎知識,例如Java NIO、動態代理、protobuf等。而是直接切入源碼分析HDFS的設計與實現,同時介紹了一些經典的設計模式、Java語言技巧在HDFS實現中的應用。希望讀者在閱讀本書之前,先搭建好源碼環境,并了解相應的基礎知識,這樣學習效果會更好。
本書一共有5章,相互之間的聯系比較緊密,有聯系的小節都有注釋標注,讀者可以根據注釋跳躍閱讀。
第1章是HDFS概述,從總體上介紹了HDFS的組件、概念以及典型的流程,同時詳細介紹了HDFS各個組件間RPC接口的定義。由于HDFS流程大都比較復雜,往往涉及多個組件的配合,讀者在閱讀后續的具體章節時,可以查閱本章內容獲取某個流程的總體描述,以及RPC接口的具體定義。
第2章介紹了Hadoop RPC框架的實現,Hadoop RPC是HDFS各個組件間通信所依賴的底層框架,可以理解為HDFS的神經系統。通過閱讀本章,讀者可以學習到一個典型的分布式RPC框架的實現細節,在本章中會介紹較多的設計模式,編程模型以及語言技巧,請讀者注重積累。
第3~5章分別介紹了Namenode、Datanode以及HDFS客戶端這三個組件的實現細節,同時穿插介紹了HDFS 2.X的新特性,例如Namenode HA就放在Namenode章介紹,而Federation Namenode新特性對Datanode的修改比較多,所以就放在Datanode章介紹。
本書代碼
本書分析的代碼版本為Hadoop 2.6.0,書中部分較長的代碼做了省略。
致謝
感謝互聯網,感謝開源軟件,感謝Hadoop社區,感謝本書引用文獻的所有原作者,是你們為Hadoop愛好者打開了一扇大門。
感謝電子工業出版社博文視點的張春雨老師,是您的信任使得這本書的出版成為可能。同時還要感謝許多我不知道名字的編輯為本書最終出版所做的付出和努力。
感謝丁雷在百忙之中抽出時間對本書提出許多建設性意見,同時感謝左譜軍、張德陽、閆飛翔以及張濤對本書的審閱。
2015年寫這本書時正是自己很困難的一段時期,我很感恩有許多朋友在生活、工作上給我幫助以及包容。感謝吳佳寧、劉文博,你們一直是第一個伸出援手的哥們。感謝鄭曉彤、袁瑋、賀子昂、李強、和紫東、劉丹、何一舟為我引薦機會,謝謝你們。
特別感謝遠見,書的撰寫過程是如此漫長,是你在這段時間里把自信、陽光和快樂傳播給我,讓我更加積極、勇敢和有信心。沒有你,這本書永遠無法完成。
最后感謝我的父母和妹妹,謝謝你們默默為我做出的犧牲和付出,你們永遠是我前進的動力。
內容簡介:

HDFS是運行在通用硬件上的分布式文件系統,本書詳細介紹了HDFS體系結構、基本概念、通信協議及主要流程,具體包括Hadoop RPC框架的使用及實現、文件系統目錄樹、數據塊管理、數據節點管理、租約管理、緩存管理、ClientProtocol實現、Namenode的啟動和停止、Datanode邏輯結構、Datanode存儲、文件系統數據集、BlockManager、流式接口、數據塊掃描器、DataNode類的實現、DFSClient實現、文件讀操作與輸入流、文件短路讀操作、文件寫操作與輸出流,以及HDFS常用工具等。

目錄:

前言
第1章 HDFS 1
1.1 HDFS概述 1
1.1.1 HDFS體系結構 1
1.1.2 HDFS基本概念 2
1.2 HDFS通信協議 4
1.2.1 Hadoop RPC接口 4
1.2.2 流式接口 20
1.3 HDFS主要流程 22
1.3.1 HDFS客戶端讀流程 22
1.3.2 HDFS客戶端寫流程 24
1.3.3 HDFS客戶端追加寫流程 25
1.3.4 Datanode啟動、心跳以及執行名字節點指令流程 26
1.3.5 HA切換流程 27
第2章 Hadoop RPC 29
2.1 概述 29
2.1.1 RPC框架概述 29
2.1.2 Hadoop RPC框架概述 30
2.2 Hadoop RPC的使用 36
2.2.1 Hadoop RPC使用概述 36
2.2.2 定義RPC協議 40
2.2.3 客戶端獲取Proxy對象 45
2.2.4 服務器獲取Server對象 54
2.3 Hadoop RPC實現 63
2.3.1 RPC類實現 63
2.3.2 Client類實現 64
2.3.3 Server類實現 76
第3章 Namenode(名字節點) 88
3.1 文件系統目錄樹 88
3.1.1 INode相關類 89
3.1.2 Feature相關類 102
3.1.3 FSEditLog類 117
3.1.4 FSImage類 138
3.1.5 FSDirectory類 158
3.2 數據塊管理 162
3.2.1 Block、Replica、BlocksMap 162
3.2.2 數據塊副本狀態 167
3.2.3 BlockManager類(done) 177
3.3 數據節點管理 211
3.3.1 DatanodeDescriptor 212
3.3.2 DatanodeStorageInfo 214
3.3.3 DatanodeManager 217
3.4 租約管理 233
3.4.1 LeaseManager.Lease 233
3.4.2 LeaseManager 234
3.5 緩存管理 246
3.5.1 緩存概念 247
3.5.2 緩存管理命令 247
3.5.3 HDFS集中式緩存架構 247
3.5.4 CacheManager類實現 248
3.5.5 CacheReplicationMonitor 250
3.6 ClientProtocol實現 251
3.6.1 創建文件 251
3.6.2 追加寫文件 254
3.6.3 創建新的數據塊 257
3.6.4 放棄數據塊 265
3.6.5 關閉文件 266
3.7 Namenode的啟動和停止 268
3.7.1 安全模式 268
3.7.2 HDFS High Availability 276
3.7.3 名字節點的啟動 301
3.7.4 名字節點的停止 306
第4章 Datanode(數據節點) 307
4.1 Datanode邏輯結構 307
4.1.1 HDFS 1.X架構 307
4.1.2 HDFS Federation 308
4.1.3 Datanode邏輯結構 310
4.2 Datanode存儲 312
4.2.1 Datanode升級機制 312
4.2.2 Datanode磁盤存儲結構 315
4.2.3 DataStorage實現 317
4.3 文件系統數據集 334
4.3.1 Datanode上數據塊副本的狀態 335
4.3.2 BlockPoolSlice實現 335
4.3.3 FsVolumeImpl實現 342
4.3.4 FsVolumeList實現 345
4.3.5 FsDatasetImpl實現 348
4.4 BlockPoolManager 375
4.4.1 BPServiceActor實現 376
4.4.2 BPOfferService實現 389
4.4.3 BlockPoolManager實現 396
4.5 流式接口 398
4.5.1 DataTransferProtocol定義 398
4.5.2 Sender和Receiver 399
4.5.3 DataXceiverServer 403
4.5.4 DataXceiver 406
4.5.5 讀數據 408
4.5.6 寫數據(done) 423
4.5.7 數據塊替換、數據塊拷貝和讀數據塊校驗 437
4.5.8 短路讀操作 437
4.6 數據塊掃描器 437
4.6.1 DataBlockScanner實現 438
4.6.2 BlockPoolSliceScanner實現 439
4.7 DirectoryScanner 442
4.8 DataNode類的實現 443
4.8.1 DataNode的啟動 444
4.8.2 DataNode的關閉 446
第5章 HDFS客戶端 447
5.1 DFSClient實現 447
5.1.1 構造方法 448
5.1.2 關閉方法 449
5.1.3 文件系統管理與配置方法 450
5.1.4 HDFS文件與目錄操作方法 451
5.1.5 HDFS文件讀寫方法 452
5.2 文件讀操作與輸入流 452
5.2.1 打開文件 452
5.2.2 讀操作——DFSInputStream實現 461
5.3 文件短路讀操作 481
5.3.1 短路讀共享內存 482
5.3.2 DataTransferProtocol 484
5.3.3 DFSClient短路讀操作流程 488
5.3.4 Datanode短路讀操作流程 509
5.4 文件寫操作與輸出流 512
5.4.1 創建文件 512
5.4.2 寫操作——DFSOutputStream實現 516
5.4.3 追加寫操作 543
5.4.4 租約相關 546
5.4.5 關閉輸出流 548
5.5 HDFS常用工具 549
5.5.1 FsShell實現 550
5.5.2 DFSAdmin實現 552
如果讀者在本書中發現了錯誤或有疑問,可以給作者發電子郵件(vcline@sohu.com),或者聯系本書的責任編輯冉哲(ran@phei.com.cn)。
序: