內容簡介
本書基於長期的教學實踐以及同國內外頂尖公司的交流合作編寫完成,系統介紹了Hadoop2.0-YARN的基本概念與運行模式。全書共分為7章。內容涵蓋Hadoop 2.0的架構、重要組件、主要計算模式、資源調度等重要問題。
第1章回顧了YARN的起源,並與Hadoop1.0進行了對比分析。第2章介紹了YARN的基本框架,對YARN中最重要的幾個組件,如資源管理、節點管理、應用程式管理等做了說明。第3章通過Hadoop2.0-YARN的安裝、編譯,以及簡單的MapReduce調試示例,讓讀者能夠迅速掌握YARN的基本操作,使得讀者有一個初步的實踐體驗。第4章對YARN的通信原理和過程進行討論,通過ProtocolBuffer、YARNRPC的實例分析讓讀者理解YARN的通信協調過程。之後轉入對YARN狀態機進行深入分析,詳細介紹了YARN中4類狀態機的轉換過程,同時提供了YARN狀態機監控軟體設計案例。第5章對基於YARN的幾種計算模式(MapReduce、Storm、Spark)進行了討論,每一種模式都提供了相應的安裝步驟、案例分析。第6章敘述了YARN調度器,詳細分析了YARN資源調度負載模擬器——SLS和Google第三代調度器omega的基本原理,並分別給出了兩種調度器的運行實例。第7章通過Tez和顯示工作流引擎設計,使得讀者對YARN工作流運行情況有一定了解。
本書最大的特點是理論與實踐結合,通過示例分析的形式降低了讀者的學習難度,避免了理論學習的枯燥性,本書的部分案例直接選自BAT中的工程實例,這使得本書更具有實戰性。廣大本科和研究生同學,可以參照本書實例,為他們進行分散式、雲計算平台學習,專業課項目設計或畢業論文提供參考。本書也可作為業界研發人員的工程實踐參考。
目錄
第1章YARN的前世今生
1.1Hadoop基本情況回顧 1
1.2為什麼我們需要YARN 2
1.3YARN和Hadoop1.0對比分析 3
1.3.1體系結構對比 3
1.3.2運算框架對比 5
1.4Hadoop生態系統 6
1.5小結 6
第2章YARN基本框架
2.1YARN基本框架 8
2.2ResourceManager 9
2.3NodeManager 10
2.4ApplicationMaster 11
2.5YARN中應用程式的運行過程 12
第3章YARN編程初步
3.1YARN安裝與配置 13
3.1.1環境準備 13
3.1.2偽分散式安裝 14
3.1.3完全分散式安裝 18
3.2源碼閱讀及編譯 22
3.2.1Maven的介紹及安裝 22
3.2.2編譯前準備 23
3.2.3YARN源碼閱讀環境配置 24
3.2.4YARN源碼編譯 27
3.3MapReduce實例 28
3.3.1WordCount 28
3.3.2Deduplication 32
3.3.3Sort 36
3.4HBase編程初步 38
3.4.1HBase介紹 38
3.4.2HBase安裝與配置 39
3.4.3HBase開發環境配置及實例 43
第4章YARN核心組件分析
4.1通信組件ProtocolBuffer 47
4.1.1什麼是ProtocolBuffer 47
4.1.2YARN中的ProtocolBuffer 47
4.1.3如何編寫ProtocolBuffer 47
4.1.4ProtocolBuffer代碼分析 49
4.2Hadoop1.0RPC和YARNRPC 50
4.2.1什麼是RPC 50
4.2.2RPC通信模型 50
4.2.3Hadoop1.0RPC的實現過程 51
4.2.4Hadoop1.0RPC的套用 51
4.2.5YARNRPC 52
4.2.6YARNRPC通信案例解析 53
4.2.7YARNRPC原始碼導讀 59
4.3YARN狀態機分析 61
4.3.1RMApp狀態機 61
4.3.2RMAppAttempt狀態機 65
4.3.3RMNode狀態機 69
4.3.4RMContainer狀態機 71
4.3.5應用程式在RM中的完整運行流程分析 72
4.3.6狀態機原始碼導讀 75
4.3.7YARN狀態機監控軟體設計 76
4.4HDFSFederation 84
4.4.1HDFS的層次 84
4.4.2當前的HDFS架構 84
4.4.3HDFSFederation 85
4.4.4FederationHDFS與當前HDFS的比較 86
第5章YARN中幾種計算模型
5.1基於YARN的MapReduce進階 87
5.1.1ReduceSideJoin 87
5.1.2MapSideJoin 91
5.1.3並行聚類Kmeans算法設計與實現 92
5.2StormonYARN 96
5.2.1Storm基本原理 96
5.2.2StormonYARN 98
5.2.3Storm單機模式安裝 98
5.2.4StormonYARN安裝 102
5.2.5基於StormonYARN的實時計程車管理系統 106
5.3SparkonYARN 112
5.3.1Spark簡介 112
5.3.2Spark基本原理 114
5.3.3Spark的部署及開發環境搭建 118
5.3.4SparkMLlib介紹 126
5.3.5Spark的最佳化配置 127
5.3.6Spark的編程案例 129
5.3.7Spark的套用案例 132
第6章YARN資源調度器
6.1Hadoop資源調度器回顧 136
6.2YARN資源調度器 138
6.2.1CapacityScheduler 138
6.2.2FairScheduler 141
6.2.3調度器比較 146
6.3YARN調度負載模擬器-SLS 146
6.3.1綜述 146
6.3.2參數和命令 148
6.3.3實例一快速開始 150
6.3.4實例二定製運行 151
6.4Google第三代調度器分析 158
6.4.1中央式調度器模式 158
6.4.2雙層調度器模式 160
6.4.3共享狀態調度器 164
6.4.4Google第三代調度器Omega 166
6.4.5Omega集群調度模擬器-CSS 169
第7章YARN工作流分析
7.1TezonYARN 173
7.1.1Tez基本原理 173
7.1.2Tez環境安裝 177
7.1.3Tez在Hive引擎中的最佳化作用 191
7.1.4小結 195
7.2顯式工作流引擎 196
7.2.1Hadoop工作流引擎 196
7.2.2某大型網際網路公司部門使用的工作流引擎 197
7.2.3套用舉例 200
7.2.4對比 202
7.2.5小結 203