第1章 YARN的前世今生 11.1 Hadoop基本情況回顧 1
1.2 為什么我們需要YARN 2
1.3 YARN和 Hadoop 1.0對比分析 3
1.3.1 體系結構對比 3
1.3.2 運算框架對比 5
1.4 Hadoop 生態系統 6
1.5 小結 6
第2章 YARN基本框架 8
2.1 YARN基本框架 8
2.2 ResourceManager 9
2.3 NodeManager 10
2.4 ApplicationMaster 11
2.5 YARN中應用程序的運行過程 12
第3章 YARN編程初步 13
3.1 YARN 安裝與配置 13
3.1.1 環境準備 13
3.1.2 偽分布式安裝 14
3.1.3 完全分布式安裝 18
3.2 源碼閱讀及編譯 22
3.2.1 Maven的介紹及安裝 22
3.2.2 編譯前準備 23
3.2.3 YARN源碼閱讀環境配置 24
3.2.4 YARN源碼編譯 27
3.3 MapReduce實例 28
3.3.1 Word Count 28
3.3.2 Deduplication 32
3.3.3 Sort 36
3.4 HBase編程初步 38
3.4.1 HBase介紹 38
3.4.2 HBase安裝與配置 39
3.4.3 HBase開發環境配置及實例 43
第4章 YARN核心組件分析 47
4.1 通信組件Protocol Buffer 47
4.1.1 什么是Protocol Buffer 47
4.1.2 YARN中的Protocol Buffer 47
4.1.3 如何編寫Protocol Buffer 47
4.1.4 Protocol Buffer代碼分析 49
4.2 Hadoop 1.0 RPC 和 YARN RPC 50
4.2.1 什么是RPC 50
4.2.2 RPC通信模型 50
4.2.3 Hadoop 1.0 RPC的實現過程 51
4.2.4 Hadoop 1.0 RPC的應用 51
4.2.5 YARN RPC 52
4.2.6 YARN RPC通信案例解析 53
4.2.7 YARN RPC源代碼導讀 59
4.3 YARN狀態機分析 61
4.3.1 RMApp狀態機 61
4.3.2 RMAppAttempt狀態機 65
4.3.3 RMNode狀態機 69
4.3.4 RMContainer狀態機 71
4.3.5 應用程序在RM中的完整運行流程分析 72
4.3.6 狀態機源代碼導讀 75
4.3.7 YARN狀態機監控軟件設計 76
4.4 HDFS Federation 84
4.4.1 HDFS的層次 84
4.4.2 當前的HDFS架構 84
4.4.3 HDFS Federation 85
4.4.4 Federation HDFS與當前HDFS的比較 86
第5章 YARN中幾種計算模型 87
5.1 基于YARN的MapReduce進階 87
5.1.1 Reduce Side Join 87
5.1.2 Map Side Join 91
5.1.3 并行聚類Kmeans算法設計與實現 92
5.2 Storm on YARN 96
5.2.1 Storm基本原理 96
5.2.2 Storm on YARN 98
5.2.3 Storm單機模式安裝 98
5.2.4 Storm on YARN安裝 102
5.2.5 基于Storm on YARN的實時出租車管理系統 106
5.3 Spark on YARN 112
5.3.1 Spark簡介 112
5.3.2 Spark基本原理 114
5.3.3 Spark的部署及開發環境搭建 118
5.3.4 Spark MLlib介紹 126
5.3.5 Spark的優化配置 127
5.3.6 Spark的編程案例 129
5.3.7 Spark的應用案例 132
第6章 YARN資源調度器 136
6.1 Hadoop資源調度器回顧 136
6.2 YARN資源調度器 138
6.2.1 Capacity Scheduler 138
6.2.2 Fair Scheduler 141
6.2.3 調度器比較 146
6.3 YARN調度負載模擬器-SLS 146
6.3.1 綜述 146
6.3.2 參數和命令 148
6.3.3 實例一 快速開始 150
6.3.4 實例二 定制運行 151
6.4 Google第三代調度器分析 158
6.4.1 中央式調度器模式 158
6.4.2 雙層調度器模式 160
6.4.3 共享狀態調度器 164
6.4.4 Google第三代調度器Omega 166
6.4.5 Omega集群調度模擬器-CSS 169
第7章 YARN工作流分析 173
7.1 Tez on YARN 173
7.1.1 Tez基本原理 173
7.1.2 Tez環境安裝 177
7.1.3 Tez在Hive引擎中的優化作用 191
7.1.4 小結 195
7.2 顯式工作流引擎 196
7.2.1 Hadoop工作流引擎 196
7.2.2 某大型互聯網公司部門使用的工作流引擎 197
7.2.3 應用舉例 200
7.2.4 對比 202
7.2.5 小結 203
參考文獻 204
??
??
??
??
IV
Hadoop 2.0-YARN核心技術實踐
V
目錄