周維編著的《Hadoop2.0-YARN核心技術實踐》 基于長期的教學實踐以及同國內外公司的交流合 作編寫完成,系統介紹了Hadoop 2.0-YARN的基本概 念與運行模式。全書共分為7章。內容涵蓋Hadoop 2.0的架構、重要組件、主要計算模式、資源調度等 重要問題。第1章回顧了YARN的起源,并與Hadoop 1.0進行了對比分析。第2章介紹了YARN的基本框架, 對YARN中重要的幾個組件,如資源管理、節點管理 、應用程序管理等做了說明。第3章通過Hadoop 2.0 -YARN的安裝、編譯,以及簡單的MapReduce調試示例 ,讓讀者能夠迅速掌握YARN的基本操作,使得讀者有 一個初步的實踐體驗。第4章對YARN的通信原理和過 程進行討論,通過Protocol Buffer、YARN RPC的實 例分析讓讀者理解YARN的通信協調過程。之后轉入對 YARN 狀態機進行深入分析,詳細介紹了YARN中4類狀 態機的轉換過程,同時提供了YARN狀態機監控軟件設 計案例。第5章對基于YARN的幾種計算模式 (MapReduce、Storm、Spark)進行了討論,每一種 模式都提供了相應的安裝步驟、案例分析。第6章敘 述了YARN調度器,詳細分析了YARN資源調度負載模擬 器——SLS和Google第三代調度器omega的基本原理, 并分別給出了兩種調度器的運行實例。第7章通過Tez 和顯示工作流引擎設計,使得讀者對YARN工作流運行 情況有一定了解。
本書大的特點是理論與實踐結合,通過示例分 析的形式降低了讀者的學習難度,避免了理論學習的 枯燥性,本書的部分案例直接選自BAT中的工程實例 ,這使得本書更具有實戰性。廣大本科和研究生同學 ,可以參照本書實例,為他們進行分布式、云計算平 臺學習,專業課項目設計或畢業論文提供參考。本書 也可作為業界研發人員的工程實踐參考。
周維,2008年獲得中國科學院研究生院博士學位,主要研究方向為P2P、分布式、云計算。現任職于云南大學軟件學院,是中國計算機學會西南網絡與MIS專委會委員、云南省通信學會理事。發表多篇文章,一貫強調理論與實際的結合,注重扎實的數據結構和算法功底,近幾年來,先后培養多位學生到國內外公司或學術研究機構。
第1章 YARN的前世今生
1.1 Hadoop基本情況回顧
1.2 為什么我們需要YARN
1.3 YARN和 Hadoop 1.0對比分析
1.3.1 體系結構對比
1.3.2 運算框架對比
1.4 Hadoop 生態系統
1.5 小結
第2章 YARN基本框架
2.1 YARN基本框架
2.2 ResourceManager
2.3 NodeManager
2.4 ApplicationMaster
2.5 YARN中應用程序的運行過程
第3章 YARN編程初步
3.1 YARN 安裝與配置
3.1.1 環境準備
3.1.2 偽分布式安裝
3.1.3 分布式安裝
3.2 源碼閱讀及編譯
3.2.1 Maven的介紹及安裝
3.2.2 編譯前準備
3.2.3 YARN源碼閱讀環境配置
3.2.4 YARN源碼編譯
3.3 MapReduce實例
3.3.1 Word Count
3.3.2 Deduplication
3.3.3 Sort
3.4 HBase編程初步
3.4.1 HBase介紹
3.4.2 HBase安裝與配置
3.4.3 HBase開發環境配置及實例
第4章 YARN核心組件分析
4.1 通信組件Protocol Buffer
4.1.1 什么是Protocol Buffer
4.1.2 YARN中的Protocol Buffer
4.1.3 如何編寫Protocol Buffer
4.1.4 Protocol Buffer代碼分析
4.2 Hadoop 1.0 RPC 和 YARN RPC
4.2.1 什么是RPC
4.2.2 RPC通信模型
4.2.3 Hadoop 1.0 RPC的實現過程
4.2.4 Hadoop 1.0 RPC的應用
4.2.5 YARN RPC
4.2.6 YARN RPC通信案例解析
4.2.7 YARN RPC源代碼導讀
4.3 YARN狀態機分析
4.3.1 RMApp狀態機
4.3.2 RMAppAttempt狀態機
4.3.3 RMNode狀態機
4.3.4 RMContainer狀態機
4.3.5 應用程序在RM中的完整運行流程分析
4.3.6 狀態機源代碼導讀
4.3.7 YARN狀態機監控軟件設計
4.4 HDFS Federation
4.4.1 HDFS的層次
4.4.2 當前的HDFS架構
4.4.3 HDFS Federation
4.4.4 Federation HDFS與當前HDFS的比較
第5章 YARN中幾種計算模型
5.1 基于YARN的MapReduce進階
5.1.1 Reduce Side Join
5.1.2 Map Side Join
5.1.3 并行聚類Kmeans算法設計與實現
5.2 Storm on YARN
5.2.1 Storm基本原理
5.2.2 Storm on YARN
5.2.3 Storm單機模式安裝
5.2.4 Storm on YARN安裝
5.2.5 基于Storm on YARN的實時出租車管理系統
5.3 Spark on YARN
5.3.1 Spark簡介
5.3.2 Spark基本原理
5.3.3 Spark的部署及開發環境搭建
5.3.4 Spark MLlib介紹
5.3.5 Spark的優化配置
5.3.6 Spark的編程案例
5.3.7 Spark的應用案例
第6章 YARN資源調度器
6.1 Hadoop資源調度器回顧
6.2 YARN資源調度器
6.2.1 Capacity Scheduler
6.2.2 Fair Scheduler
6.2.3 調度器比較
6.3 YARN調度負載模擬器-SLS
6.3.1 綜述
6.3.2 參數和命令
6.3.3 實例一 快速開始
6.3.4 實例二 定制運行
6.4 Google第三代調度器分析
6.4.1 中央式調度器模式
6.4.2 雙層調度器模式
6.4.3 共享狀態調度器
6.4.4 Google第三代調度器Omega
6.4.5 Omega集群調度模擬器-CSS
第7章 YARN工作流分析
7.1 Tez on YARN
7.1.1 Tez基本原理
7.1.2 Tez環境安裝
7.1.3 Tez在Hive引擎中的優化作用
7.1.4 小結
7.2 顯式工作流引擎
7.2.1 Hadoop工作流引擎
7.2.2 某大型互聯網公司部門使用的工作流引擎
7.2.3 應用舉例
7.2.4 對比
7.2.5 小結
參考文獻