本書主要分析Hadoop 3.2.0的新特性和新功能,共5章。首先簡單介紹Hadoop,讓剛接觸Hadoop的讀者對它有個基本了解; 接著介紹目前使用比較多的分布式文件系統(tǒng)HDFS,內容涉及NameNode 的原理、HA、HDFS Federation和HDFS 3.0中新增的特性;然后從應用管理和資源調度這兩個方面介紹一個通用的資源管理平臺YARN;再后討論如何在YARN平臺中運行應用,比如如何將應用遷移到YARN平臺,以及非Hadoop的應用是如何兼容YARN模式的。最后,書中給出了一些工作實戰(zhàn)指南,包括如何搭建一個生產(chǎn)可用的Hadoop 3.0集群;如何將現(xiàn)有Hadoop 2.0集群升級到Hadoop 3.0,及其在升級過程中遇到的問題;如何針對Hadoop進行二次開發(fā),并參與社區(qū),向社區(qū)貢獻代碼;一個大數(shù)據(jù)平臺應具備哪些必備組件等。
1. 本書內容基于全新的Hadoop3.x,主要分析Hadoop 3.2.0的新特性和新功能。
2. 本書作者孫志偉為金山云數(shù)據(jù)平臺架構師,主要專注于Hadoop的研究。
3. 本書內容源于企業(yè)級真實實踐,覆蓋了完整的Hadoop生態(tài)系統(tǒng),為大數(shù)據(jù)入門者給予循序漸進的實戰(zhàn)指導。
4. 阿里云數(shù)據(jù)庫高級產(chǎn)品專家黃鵬程、奈學教育創(chuàng)始人&CEO孫玄、金山云研發(fā)總監(jiān)陳斌聯(lián)合推薦。
孫志偉
金山云數(shù)據(jù)平臺架構師,專注于Hadoop生態(tài)和數(shù)據(jù)平臺建設,曾就職于網(wǎng)易、轉轉等互聯(lián)網(wǎng)公司。對大數(shù)據(jù)處理、分布式計算與數(shù)據(jù)采集有著濃厚的興趣。一直從事Hadoop 研發(fā)與運維工作,努力鉆研技術并堅持分享。有著豐富的一線研發(fā)與運維經(jīng)驗,是多個社區(qū)的Contributor,積極活躍于開源社區(qū)。
碩士,畢業(yè)于華北電力大學。
目 錄
第 1章 Hadoop 1
1.1 簡介 1
1.1.1 Hadoop 1.0 1
1.1.2 Hadoop 2.0 3
1.2 Hadoop 3.0 4
1.3 閱讀Hadoop源碼 6
1.3.1 單元測試 8
1.3.2 斷點調試代碼 11
1.4 小結 13
第 2章 HDFS 14
2.1 HDFS簡介 14
2.2 解析NameNode中的元數(shù)據(jù)及其內存結構 15
2.2.1 解析NameNode中的元數(shù)據(jù) 16
2.2.2 解析NameNode的內存結構 19
2.3 解析NameNode的HA功能 23
2.3.1 基于QJM的HA 23
2.3.2 故障轉移 26
2.3.3 多NameNode模式 28
2.4 HDFS的Federation 29
2.4.1 基于viewfs的Federation 30
2.4.2 基于Router的Federation 31
2.5 糾刪碼 32
2.5.1 糾刪碼的原理 33
2.5.2 HDFS EC 35
2.5.3 HDFS EC的實現(xiàn) 38
2.5.4 對比HDFS EC策略與三副本策略 49
2.6 下一代對象存儲系統(tǒng)Ozone 50
2.6.1 Ozone初體驗 50
2.6.2 Ozone架構 53
2.7 小結 55
第3章 YARN 56
3.1 YARN簡介 56
3.2 解析ResourceManager的HA功能 60
3.2.1 故障轉移 61
3.2.2 數(shù)據(jù)恢復 63
3.3 YARN Federation 65
3.3.1 架構 65
3.3.2 Router 66
3.3.3 State Store和Policy Store 69
3.3.4 AMRMProxy 69
3.3.5 跨子集群運行 74
3.4 中央調度器 75
3.4.1 Capacity調度器 76
3.4.2 Fair調度器 78
3.4.3 調度擴展 90
3.5 分布式調度器 96
3.5.1 分布式調度器的架構 97
3.5.2 opportunistic container 98
3.6 YARN Shared Cache 99
3.6.1 資源本地化 100
3.6.2 Shared Cache的架構 101
3.6.3 Shared Cache實例 102
3.7 小結 104
第4章 Application on YARN 105
4.1 MapReduce的簡介 105
4.2 MapReduce的源碼分析 106
4.2.1 InputSplit 107
4.2.2 環(huán)形緩沖區(qū) 109
4.2.3 溢寫和歸并 112
4.2.4 Shuffle 113
4.3 MapReduce on YARN 119
4.3.1 YARN的事件機制和狀態(tài)機機制 119
4.3.2 MR ApplicationMaster 123
4.4 Application on YARN 124
4.5 小結 129
第5章 實戰(zhàn)指南 130
5.1 Hadoop 3.x的部署 130
5.1.1 Hadoop 3.x HA的部署 130
5.1.2 Hadoop 3.x Federation的部署 145
5.2 Hadoop升級 149
5.2.1 Hadoop 2.0升級為Hadoop 3.0 151
5.2.2 Hadoop 3.0降級為Hadoop 2.0 155
5.2.3 升級/降級中遇到的問題 155
5.3 二次開發(fā) 160
5.3.1 與其他自研系統(tǒng)融合 160
5.3.2 自身功能擴展之自動識別修復后的數(shù)據(jù)盤 163
5.3.3 合并社區(qū)Patch 166
5.3.4 提交Pull Request 167
5.4 周邊系統(tǒng)平臺 169
5.4.1 任務調度平臺 169
5.4.2 監(jiān)控平臺 170
5.4.3 集群診斷分析平臺 174
5.5 小結 176