地表最強Hadoop-YARN專家最新力作
■ 涵蓋Hadoop的架構、重要元件、主要計算模型、資源排程
■ 理論與實作結合,透過實際常式降低讀者學習難度
■ 具實戰性,部分案例直接選自BAT中的工程實例
作者從事分散式教學與研究十餘年,在與國內外頂尖公司的交流中, 發現Hadoop很適合作為一個分散式課程教學實作與研究平台,因此編著本書,有系統地介紹Hadoop 2.0-YARN的基本概念與運行模式。
內容涵蓋Hadoop 2.0的架構、重要元件、主要計算模型、資源排程等重要問題。
適用:分散式、雲端運算平台學習者,或提供業界研發人員的工程實作參考。
作者簡介:
周維
2008年獲得中國科學院研究生院博士學位,主要研究方向為P2P、分散式、雲計算。現任職于雲南大學軟體學院,是中國電腦學會西南網路與MIS專委會委員、雲南省通信學會理事。發表多篇文章,一貫強調理論與實際的結合,注重扎實的資料結構和演算法功底,近幾年來還培養多位學生到國內外公司或學術研究機構服務。
作者序
隨著電腦、網際網路技術的發展,很多以前只能在單機上執行的程式現在越來越呈現出分佈化、網路化的特點,近幾年來,雲端運算、大數據更成為炙手可熱的社會關注重心。在目前資訊爆炸的時代,每天都在產生大量的資訊資料,而如何高效率地對這些資訊進行處理成為電腦研發人員必須面對的挑戰。
雖然陸續提出過平行計算、網格計算等方案,但是在面臨大規模,高效應用需求時都不是很理想。Hadoop 的誕生,極佳地契合了目前全球電腦技術發展的潮流,由於其穩定性、可擴充性、開放原始碼性,Hadoop 成為國內外公司在雲端運算時代的首選支撐平台。
作者從事分散式教學與研究十餘年,在同國內外頂尖公司的交流中,我們發現Hadoop 很適合作為一個分散式課程教學實作與研究平台,因為Hadoop 既包含了獨立元件的執行,也包含了分佈化的不同元件之間的通訊,還包含了分散式系統的架構設計等,Hadoop 事實上成為一個集大成的分散式系統。最為難能可貴的是,Hadoop 是完全開放原始碼的系統,這使得我們有機會深入其中進行分析、研究。因此,近年來,作者逐步在分散式教學與研究中引用Hadoop 系統,獲得了明顯的效果。
在對Hadoop 進行分析研究的基礎上,我們意識到目前Hadoop 書籍還會有一些不滿意的地方,例如:①由於Hadoop 2.0-YARN 在2013 年11 月才發佈穩定版,因此,對YARN 的公開研究資料還不多,目前可查詢到的YARN 中文版書籍還比較少,這些書籍雖然也不錯,但是更適合一個Hadoop 從業人員作為技術手冊,對廣大普通讀者來說,入門門檻過高,而且看過後基本還是不會撰寫YARN 程式。②雖然網路上也有不少這方面的資料,但是由於網路寫作的隨意性,資料很零散且存在很多錯誤,因此讓初學者和普通開發人員很難快速入手。
基於此,作者著手編著一本針對Hadoop 2.0-YARN 的書籍。本書在寫作過程中注重實作教學,因此配備有很多實際常式,這樣讀者可以邊看書、邊安裝、邊偵錯,因此降低學習難度,加快學習進度,同時,本書對YARN 中的一些核心內容的剖析也很有價值,如①計程車Storm on YARN 即時處理實例;② YARN 狀態機資訊捕捉;③ YARN 排程模擬器——SLS 分析,並與Google第三代排程器Omega 進行比較分析。這些資料都既有文字說明,又有實際程式。以我們長期為基礎的實作,有些內容是第一次透明,網路上也沒有的,所以對讀者會有很大的吸引力。本書在寫作工程中,也力求和公司的專案結合起來,因此,部分案例直接選自BAT 中的專案實例,這使得本書更具有實戰性。
作為廣大的大學和所究所同學,可以參照本書實例進行研究或修改,為他們進行分散式、雲端運算平台學習,專業課專案設計或畢業論文提供參考。本書也可作為業界研發人員的專案實作提供參考。
本書第1~6 章由周維老師主要負責撰寫,第7 章由薛崗老師主要負責撰寫。另外來自阿里巴巴的楊輝先生,袁碩同學,以及在百度的劉笠熙同學、周可人同學都提出了寶貴意見並設計了部分案例。此外,還要特別感謝很多參與程式偵錯的所究所學生,這其中包含麥超、劉建坤、劉長春、範航凱、傅央、張浩、向文坤、魏征、孫淋川、羅潔等。沒有大家的幫助,這本書也不可能這麼快寫完,在此對所有支援本書編著的人表示衷心的感謝。
由於時間倉促,本書難免存在不妥之處,請讀者批評指正。
隨著電腦、網際網路技術的發展,很多以前只能在單機上執行的程式現在越來越呈現出分佈化、網路化的特點,近幾年來,雲端運算、大數據更成為炙手可熱的社會關注重心。在目前資訊爆炸的時代,每天都在產生大量的資訊資料,而如何高效率地對這些資訊進行處理成為電腦研發人員必須面對的挑戰。
雖然陸續提出過平行計算、網格計算等方案,但是在面臨大規模,高效應用需求時都不是很理想。Hadoop 的誕生,極佳地契合了目前全球電腦技術發展的潮流,由於其穩定性、可擴充性、開放原始碼性,Hadoop 成為國內外公司在雲端運算時代的首選支撐平台。...
目錄
前言
第1 章 YARN 的前世今生
1.1 Hadoop 基本情況回顧
1.2 為什麼我們需要YARN
1.3 YARN 和Hadoop 1.0 比較分析
1.4 Hadoop 生態系統
1.5 小結
第2 章YARN 基本架構
2.1 YARN 基本架構
2.2 ResourceManager
2.3 NodeManager
2.4 ApplicationMaster
2.5 YARN 中應用程式的執行過程
第3 章程式設計初步
3.1 YARN 安裝與設定
3.2 原始程式閱讀及編譯
3.3 MapReduce 實例
3.4 HBase 程式設計初步
第4 章 YARN 核心元件分析
4.1 通訊元件Protocol Buffer
4.2 Hadoop 1.0 RPC 和YARN RPC
4.3 YARN 狀態機分析
4.4 4.4 HDFS Federation
第5 章 YARN 中幾種計算模型
5.1 以YARN 為基礎的MapReduce 進階
5.2 Storm on YARN
5.3 Spark on YARN
第6 章 YARN 資源排程器
6.1 Hadoop 資源排程器回顧
6.2 YARN 資源排程器
6.3 YARN 排程負載模擬器-SLS
6.4 Google 第三代排程器分析
第7 章 YARN 工作流分析
7.1 Tez on YARN
7.2 顯性工作流引擎
前言
第1 章 YARN 的前世今生
1.1 Hadoop 基本情況回顧
1.2 為什麼我們需要YARN
1.3 YARN 和Hadoop 1.0 比較分析
1.4 Hadoop 生態系統
1.5 小結
第2 章YARN 基本架構
2.1 YARN 基本架構
2.2 ResourceManager
2.3 NodeManager
2.4 ApplicationMaster
2.5 YARN 中應用程式的執行過程
第3 章程式設計初步
3.1 YARN 安裝與設定
3.2 原始程式閱讀及編譯
3.3 MapReduce 實例
3.4 HBase 程式設計初步
第4 章 YARN 核心元件分析
4.1 通訊元件Protocol Buffer
4.2 Hadoop 1.0 RPC 和YARN RPC
4.3 YARN 狀態機分析
4.4...