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