本書系統介紹Hadoop 2.0生態圈的核心和擴展元件,包括:管理工具Ambari、分散式檔案系統HDFS、分散式資源管理器YARN、分散式平行處理MapReduce、記憶體型計算架構Spark、資料流程即時處理系統Storm、分散式鎖服務ZooKeeper、分散式資料庫HBase、資料倉儲工具Hive,以及Pig、Oozie、Flume、Mahout等。
適合:運用雲端運算和大數據相關企業,或相關人員。
作者序
前言
1998 年,史丹佛大學的博士生賴瑞• 佩奇和謝爾蓋• 布林在車庫裡建立了
Google 公司。2001 年,Google 已經索引了近30 億個網頁。2004 年,Google 發佈Gmail,提供聞所未聞的1GB 免費電子郵件——眾人還以為這是個愚人節玩笑。緊接著,Google 又發佈了Google Maps 和被稱為「上帝之眼」的Google Earth⋯⋯
目前,google.com 為全世界造訪量最高的網站。Google 在全球部署了約200多萬台伺服器,每天處理數以億計的搜索請求和使用者產生的約24PB 資料,而且這些資料還在不斷迅速增長。同時,Google 的Android 智慧型手機作業系統已經擁有超過40% 的美國智慧型手機使用者,而蘋果僅以8.9% 的市佔率排名第四。
社交服務Google+ 推出不到半月,使用者數量就突破1000萬,其增長速度罕見。數輛Google 無人駕駛汽車已經安全行駛了至少22.5萬公里,沒有發生過任何意外。Google 機器翻譯服務能夠實現60 多種語言中任意兩種語言間的互譯⋯⋯
是什麼技術造就了這家讓人驚歎的公司?是什麼樣的平台在支撐這些讓人匪夷所思的應用?——全世界的人都很好奇。好在Google 並不保守——從2003年開始,Google 連續幾年發表論文,揭示其核心技術,包含Google 檔案系統GFS、Map/Reduce 程式設計模式、分散式鎖機制Chubby 以及大規模分散式資料庫BigTable 等。隨後,Google CEO 施密特將這種技術稱之為「雲端運算」。所謂「雲端運算」,就是用網路連接大量廉價計算節點,透過分散式軟體虛擬成一個可靠的高性能計算平台。之所以稱為「雲」,是因為我們畫網路圖的時候,總是將網路畫成一朵雲。現在,這朵雲變成了我們的「電腦」,而我們的PC、智慧型手機等則變成了它的終端,因此稱之為「雲端運算」。
2004 年,正當開放原始碼搜尋引擎Nutch 和開放原始碼全文檢索套件Lucene之父Doug Cutting 為平台的可用性和效能深受困擾時,看到了Google 發表的GFS 和MapReduce 論文,花了2 年時間將之實現,使平台的能力獲得大幅提升。2006 年,Doug Cutting 加入Yahoo!,並將這部分工作單列形成Hadoop 專案小組。
Hadoop 的名稱,並不是一個正式的英文單字,而來自Doug Cutting 的小兒子對所玩的小象玩具的稱呼。Hadoop 主要由以下幾個子專案小組成。
(1) Hadoop Common:是支撐Hadoop 的公共部分,包含檔案系統、遠端程序呼叫(RPC)和序列化函數庫等。
(2) HDFS:提供高傳輸量的可靠分散式檔案系統,是GFS開放原始碼實現。
(3) MapReduce:大型分散式資料處理模型,是Google MapReduce 的開放原始碼實現。
與Hadoop 直接相關的搭配開放原始碼專案還包含以下幾個方面。
(1) HBase:支援結構化資料儲存的分散式資料庫,是BigTable 的開放原始碼實現。
(2) Hive:提供資料摘要和查詢功能的資料倉儲。
(3) Pig:是在MapReduce 上建置的一種進階的資料流程語言,可以簡化MapReduce 工作的開發。
(4) Cassandra:由Fackbook 支援的開放原始碼高可擴充分散式資料庫。是Amazon 底層架構Dynamo 的全分佈和Google BigTable 的列式資料儲存模型的有機結合。
(5) Chukwa:一個用來管理大型分散式系統的資料獲取系統。
(6) ZooKeeper:用於解決分散式系統中一致性問題,是Chubby 的開放原始碼實現。
經過5 年發展,在所有的開放原始碼雲端運算系統裡,Hadoop 穩居第一。
事實上,Hadoop 是如此受歡迎,全球已經安裝了數以萬計的Hadoop 系統。
不僅大專院校和小企業使用Hadoop,連Facebook、淘寶、360 安全衛士這樣的知名企業也在大規模使用Hadoop。2007 年,Google 開始在全球推廣「Google 101」計畫,即在全球知名大專院校為學生開設Google 模式的雲端運算程式設計課程。資助開設了MapReduce 和雲端運算技術課程,本書的部分章節內容也正是在所開設課程內容的基礎上形成的。有趣的是,由於Google 不能直接將其平台開放給學生做實驗室,於是Google 乾脆用Hadoop來架設實驗環境——可見Google 對Hadoop 的認同度。
網站上做的調查表明,網友將Hadoop 作為雲端運算領域要學習的首選技術。目前迫切需要傳授Hadoop 程式設計經驗和解決實際問題技巧的書籍。我們的雲端運算技術研發團隊長期戰鬥在儲存和處理巨量資料的前線,在實作過程中累積了一些經驗。為此,我們感覺到有必要向淘寶網核心架構團隊學習,將自己累積的點滴經驗貢獻出來與大家分享,於是萌生了創作此書的念頭。
由於編者水準有限,時間較緊,書中如有錯誤之處,敬請讀者批評指正。
意見和建議請發郵件到:cloudforum@163.com。
新浪微博互動交流至:http://weibo.com/cloudgrid。
前言
1998 年,史丹佛大學的博士生賴瑞• 佩奇和謝爾蓋• 布林在車庫裡建立了
Google 公司。2001 年,Google 已經索引了近30 億個網頁。2004 年,Google 發佈Gmail,提供聞所未聞的1GB 免費電子郵件——眾人還以為這是個愚人節玩笑。緊接著,Google 又發佈了Google Maps 和被稱為「上帝之眼」的Google Earth⋯⋯
目前,google.com 為全世界造訪量最高的網站。Google 在全球部署了約200多萬台伺服器,每天處理數以億計的搜索請求和使用者產生的約24PB 資料,而且這些資料還在不斷迅速增長。同時,Google 的Android 智慧型手機作業系統已...
目錄
前言
01大數據元件概述
1.1 Google 大數據元件
1.2 Apache 大數據元件
02 大數據叢集
2.1 大數據叢集簡介
2.2 大數據叢集bigCstor
2.3 我的大數據叢集littleCstor
2.4 小結
03叢集管理工具Ambari
3.1 Ambari 簡介
3.2 使用Ambari 部署HDP
3.3 使用Ambari 架設littleCstor
3.4 使用Ambari 管理littleCstor
3.5 小結
04分散式檔案系統HDFS
4.1 分散式儲存引例
4.2 HDFS 簡介
4.3 HDFS 介面
4.4 實戰HDFS Shell
4.5 實戰WebHDFS
4.6 實戰HDFS JAVA API
4.7 實戰HDFS 大專案:用HDFS 儲存巨量視訊資料
05分散式資源管理員YARN
5.1 分散式資源管理員引例
5.2 YARN 簡介
5.3 YARN 介面
5.4 實戰YARN Shell
5.5 實戰YARN 程式設計
5.6 實戰YARN 程式設計之DistributedShell
5.7 實戰YARN 程式設計之三大範式
06分散式平行處理MapReduce
6.1 平行化範式M-S-R 引例
6.2 MapReduce 簡介
6.3 MapReduce 介面
6.4 實戰MapReduce Shell
6.5 實戰MapReduce 程式設計
6.6 實戰MapReduce 程式設計之WordCount
6.7 實戰MapReduce 程式設計之SecondarySort
6.8 實戰MapReduce 程式設計之倒排索引
6.9 實戰MapReduce 之效能最佳化
07分散式鎖服務ZooKeeper
7.1 ZooKeeper 簡介
7.2 ZooKeeper 介面
7.3 實戰ZooKeeper 程式設計
7.4 實戰ZooKeeper 之處理程序通訊
7.5 實戰ZooKeeper 之處理程序排程系統
7.6 實戰ZooKeeper 之實現NameNode 自動切換
08分散式資料庫HBase
8.1 HBase 簡介
8.2 HBase 介面
8.3 實戰HBase Shell
8.4 實戰HBase API
8.5 實戰HBase 之綜例
8.6 實戰HBase 之使用MapReduce 建置索引
09記憶體型計算架構Spark
9.1 Spark 簡介
9.2 Spark 介面
9.3 實戰Spark Shell
9.4 實戰Spark 程式設計之RDD
9.5 實戰Spark 之WordCount
9.6 實戰Spark 之MLLib
10資料流程即時處理系統Storm
10.1 Storm 簡介
10.2 Storm 介面
10.3 實戰Storm Shell
10.4 實戰Storm API 之RollingTopWords
11資料倉儲工具Hive
11.1 Hive 簡介
11.2 Hive 介面
11.3 實戰Hive Shell
11.4 實戰Hive 之複雜敘述
11.5 實戰Hive 之綜合範例
11.6 實戰Hive API 介面
12其他常見大數據元件
12.1 Pig
12.2 Oozie
12.3 Flume
12.4 Mahout
A手動部署Hadoop2.0
前言
01大數據元件概述
1.1 Google 大數據元件
1.2 Apache 大數據元件
02 大數據叢集
2.1 大數據叢集簡介
2.2 大數據叢集bigCstor
2.3 我的大數據叢集littleCstor
2.4 小結
03叢集管理工具Ambari
3.1 Ambari 簡介
3.2 使用Ambari 部署HDP
3.3 使用Ambari 架設littleCstor
3.4 使用Ambari 管理littleCstor
3.5 小結
04分散式檔案系統HDFS
4.1 分散式儲存引例
4.2 HDFS 簡介
4.3 HDFS 介面
4.4 實戰HDFS Shell
4.5 實戰WebHDFS
4.6 實戰HDFS JAVA API
4.7 實戰HDFS 大專案:用HDFS 儲存巨量視訊資料
...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。