前言
隨著電腦、網際網路技術的發展,很多以前只能在單機上執行的程式現在
越來越呈現出分佈化、網路化的特點,近幾年來,雲端運算、大數據更成為炙手可熱的社會關注重心。在目前資訊爆炸的時代,每天都在產生大量的資訊資料,而如何高效率地對這些資訊進行處理成為電腦研發人員必須面對的挑戰。雖然陸續提出過平行計算、網格計算等方案,但是在面臨大規模,高效應用需求時都不是很理想。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 章由薛崗老師主要負責撰
寫。另外來自阿里巴巴的楊輝先生,袁碩同學,以及在百度的劉笠熙同學、周可人同學都提出了寶貴意見並設計了部分案例。此外,還要特別感謝很多參與程式偵錯的所究所學生,這其中包含麥超、劉建坤、劉長春、範航凱、傅央、張浩、向文坤、魏征、孫淋川、羅潔等。沒有大家的幫助,這本書也不可能這麼快寫完,在此對所有支援本書編著的人表示衷心的感謝。
由於時間倉促,本書難免存在不妥之處,請讀者批評指正。