《Hadoop實戰(zhàn)(第2版)》能滿足讀者全面學習最新的Hadoop技術及其相關技術(Hive、HBase等)的需求,是一本系統(tǒng)且極具實踐指導意義的Hadoop工具書和參考書。第1版上市后廣受好評,被譽為學習Hadoop技術的經(jīng)典著作之一。與第1版相比,第2版技術更新穎,所有技術都針對最新版進行了更新;內(nèi)容更全面,幾乎每一個章節(jié)都增加了新內(nèi)容,而且增加了新的章節(jié);實戰(zhàn)性更強,案例更豐富;細節(jié)更完美,對第1版中存在的缺陷和不足進行了修正。
本書內(nèi)容全面,對Hadoop整個技術體系進行了全面的講解,不僅包括HDFS、MapReduce、YARN等核心內(nèi)容,而且還包括Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等與Hadoop技術相關的重要內(nèi)容。實戰(zhàn)性強,不僅為各個知識點精心設計了大量經(jīng)典的小案例,而且還包括Yahoo!等多個大公司的企業(yè)級案例,可操作系極強。
《Hadoop實戰(zhàn)(第2版)》全書一共19章:第1~2章首先對Hadoop進行了全方位的宏觀介紹,然后介紹了Hadoop在三大主流操作系統(tǒng)平臺上的安裝與配置方法;第3~6章分別詳細講解了MapReduce計算模型、MapReduce的工作機制、MapReduce應用的開發(fā)方法,以及多個精巧的MapReduce應用案例;第7章全面講解了Hadoop的I/O操作;第8章對YARN進行了介紹;第9章對HDFS進行了詳細講解和分析;第10章細致地講解了Hadoop的管理;第11~17章對Hadoop大生態(tài)系統(tǒng)中的Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等技術進行了詳細的講解;第18章講解了Hadoop的各種常用插件,以及Hadoop插件的開發(fā)方法;第19章分析了Hadoop在Yahoo!、eBay、百度、Facebook等企業(yè)中的應用案例。
第1版廣受好評,第2版基于Hadoop及其相關技術最新版本撰寫,從多角度做了全面的修訂和補充。《Hadoop實戰(zhàn)(第2版)》不僅詳細講解了新一代的Hadoop技術,而且全面介紹了Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等重要技術,是系統(tǒng)學習Hadoop技術的首選之作!同類暢銷商品推薦: 《Hadoop技術內(nèi)幕:深入解析Hadoop Common和HDFS架構設計與實現(xiàn)原理》 《Hadoop技術內(nèi)幕:深入解析MapReduce架構設計與實現(xiàn)原理》 海報:
為什么寫這本書
計算技術已經(jīng)改變了我們的工作、學習和生活。分布式的云計算技術是當下IT領域最熱門的話題之一,它通過整合資源,為降低成本和能源消耗提供了一種簡化、集中的計算平臺。這種低成本、高擴展、高性能的特點促使其迅速發(fā)展,遍地開發(fā),悄然改變著整個行業(yè)的面貌。社會各界對云計算的廣泛研究和應用無疑證明了這一點:在學術界,政府和很多高校十分重視對云計算技術的研究和投入;在產(chǎn)業(yè)界,各大IT公司也在研究和開發(fā)相關的云計算產(chǎn)品上投入了大量的資源。這些研究和應用推動與云計算相關的新興技術和產(chǎn)品不斷涌現(xiàn),傳統(tǒng)的信息服務產(chǎn)品向云計算模式轉型。
Hadoop作為Apache基金會的開源項目,是云計算研究和應用最具代表性的產(chǎn)品。Hadoop分布式框架為開發(fā)者提供了一個分布式系統(tǒng)的基礎架構,用戶可以在不了解分布式系統(tǒng)底層細節(jié)的情況下開發(fā)分布式的應用,充分利用由Hadoop統(tǒng)一起來的集群存儲資源、網(wǎng)絡資源和計算資源,實現(xiàn)基于海量數(shù)據(jù)的高速運算和存儲。
在編寫本書第一版時,鑒于Hadoop技術本身和應用環(huán)境較為復雜,入門和實踐難度較大,而關于Hadoop的參考資料又非常少,筆者根據(jù)自己的實際研究和使用經(jīng)歷,理論與實踐并重,從基礎出發(fā),為讀者全面呈現(xiàn)了Hadoop的相關知識,旨在為Hadoop學習者提供一本工具書。但是時至今日,Hadoop的版本已從本書第一版介紹的0.20升級至正式版1.0,讀者的需求也從入門發(fā)展到更加深入地了解Hadoop的實現(xiàn)細節(jié),了解Hadoop的更新和發(fā)展的趨勢,了解Hadoop在企業(yè)中的應用。雖然本書第一版受到廣大Hadoop學習者的歡迎,但是為了保持對最新版Hadoop的支持,進一步滿足讀者的需求,繼續(xù)推動Hadoop技術在國內(nèi)的普及和發(fā)展,筆者不惜時間和精力,搜集資料,親自實踐,編寫了本書第二版。
第2版與第1版的區(qū)別
基于Hadoop 1.0版本和相關項目的最新版,本書在第1版的基礎上進行了更新和調(diào)整:
每章都增加了新內(nèi)容(如第1章增加了與Hadoop安全相關的知識,第2增加了在Max OS X系統(tǒng)上安裝Hadoop的介紹,第9章增加了WebHDFS等);
部分章節(jié)深入剖析了Hadoop源碼;
增加了對Hadoop接口及實踐方面的介紹(附錄C和附錄D);
增加了對下一代MapReduce的介紹(第8章);
將企業(yè)應用介紹移到本書最后并更新了內(nèi)容(第19章);
增加了對Hadoop安裝和代碼執(zhí)行的集中介紹(附錄B)。
本書面向的讀者
在編寫本書時,筆者力圖使不同背景、職業(yè)和層次的讀者都能從這本書中獲益。
如果你是專業(yè)技術人員,本書將帶領你深入云計算的世界,全面掌握Hadoop及其相關技術細節(jié),幫助你使用Hadoop技術解決當前面臨的問題。
如果你是系統(tǒng)架構人員,本書將成為你搭建Hadoop集群、管理集群,并迅速定位和解決問題的工具書。
如果你是高等院校計算機及相關專業(yè)的學生,本書將為你在課堂之外了解最新的IT技術打開了一扇窗戶,幫助你拓寬視野,完善知識結構,為迎接未來的挑戰(zhàn)做好知識儲備。
在學習本書之前,大家應該具有如下的基礎:
要有一定的分布式系統(tǒng)的基礎知識,對文件系統(tǒng)的基本操作有一定的了解。
要有一定的Linux操作系統(tǒng)的基礎知識。
有較好的編程基礎和閱讀代碼的能力,尤其是要能夠熟練使用Java語言。
對數(shù)據(jù)庫、數(shù)據(jù)倉庫、系統(tǒng)監(jiān)控,以及網(wǎng)絡爬蟲等知識最好也能有一些了解。
如何閱讀本書
從整體內(nèi)容上講,本書包括19章和4個附錄。前10章、第18章、第19章和4個附錄主要介紹了Hadoop背景知識、Hadoop集群安裝和代碼執(zhí)行、MapReduce機制及編程知識、HDFS實現(xiàn)細節(jié)及管理知識、Hadoop應用。第11章至第17章結合最新版本詳細介紹了與Hadoop相關的其他項目,分別為Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa,以備讀者擴展知識面之用。
在閱讀本書時,筆者建議大家先系統(tǒng)地學習Hadoop部分的理論知識(第1章、第3章、第6章至第10章),這樣可對Hadoop的核心內(nèi)容和實現(xiàn)機制有一個很好的理解。在此基礎上,讀者可進一步學習Hadoop部分的實踐知識(第2章、第4章、第5章、第18章、第19章和4個附錄),嘗試搭建自己的Hadoop集群,編寫并運行自己的MapReduce代碼。對于本書中關于Hadoop相關項目的介紹,大家可以有選擇地學習。在內(nèi)容的編排上,各章的知識點是相對獨立的,是并行的關系,因此大家可以有選擇地進行學習。當然,如果時間允許,還是建議大家系統(tǒng)地學習全書的內(nèi)容,這樣能夠對Hadoop系統(tǒng)的機制有一個完整而系統(tǒng)的理解,為今后深入地研究和實踐Hadoop及云計算技術打下堅實的基礎。
另外,筆者希望大家在學習本書時能一邊閱讀,一邊根據(jù)書中的指導動手實踐,親自實踐本書中所給出的編程范例。例如,先搭建一個自己的云平臺,如果條件受限,可以選擇偽分布的方式。
在線資源及勘誤
在本書的附錄中,提供了一個基于Hadoop的云計算在線測試平臺,大家可以先注冊一個免費賬戶,然后即可體驗Hadoop平臺,通過該平臺大家可在線編寫MapReduce應用并進行自動驗證。如果大家希望獲得該平臺的驗證碼,或者希望獲得完全編程測試和理論測試的權限,請發(fā)郵件。讀者也可訪問Hadoop的官方網(wǎng)站閱讀官方介紹文檔,下載學習示例代碼。
在本書的撰寫和相關技術的研究中,盡管筆者投入了大量的精力、付出了艱辛的努力,但是受知識水平所限,書中存在不足和疏漏之處在所難免,懇請大家批評指正。如果有任何問題和建議,可發(fā)送電子郵件。
致謝
在本書的編寫過程中,很多Hadoop方面的實踐者和研究者做了大量的工作,他們是馮博亮、程明、徐文韜、張林林、朱俊良、許翔、陳東偉、譚果、林春彬等,在此表示感謝。
陸嘉恒
2012年6月于北京
陸嘉恒,資深數(shù)據(jù)庫專家和云計算技術專家,對Hadoop及其相關技術有非常深入的研究,主持了多個分布式云計算項目的研究與實施,積累了豐富的實踐經(jīng)驗。獲得新加坡國立大學博士學位,美國加利福尼亞大學爾灣分校(University of California, Irvine) 博士后,現(xiàn)為中國人民大學教授,博士生導師。此外,他對數(shù)據(jù)挖掘和Web信息搜索等技術也有深刻的認識。
前 言
第1章 Hadoop簡介
1.1 什么是Hadoop
1.1.1 Hadoop概述
1.1.2 Hadoop的歷史
1.1.3 Hadoop的功能與作用
1.1.4 Hadoop的優(yōu)勢
1.1.5 Hadoop應用現(xiàn)狀和發(fā)展趨勢
1.2 Hadoop項目及其結構
1.3 Hadoop體系結構
1.4 Hadoop與分布式開發(fā)
1.5 Hadoop計算模型—MapReduce
1.6 Hadoop數(shù)據(jù)管理
1.6.1 HDFS的數(shù)據(jù)管理
1.6.2 HBase的數(shù)據(jù)管理
1.6.3 Hive的數(shù)據(jù)管理
1.7 Hadoop集群安全策略
1.8 本章小結
第2章 Hadoop的安裝與配置
2.1 在Linux上安裝與配置Hadoop
2.1.1 安裝JDK 1.6
2.1.2 配置SSH免密碼登錄
2.1.3 安裝并運行Hadoop
2.2 在Mac OSX上安裝與配置Hadoop
2.2.1 安裝Homebrew
2.2.2 使用Homebrew安裝Hadoop
2.2.3 配置SSH和使用Hadoop
2.3 在Windows上安裝與配置Hadoop
2.3.1 安裝JDK 1.6或更高版本
2.3.2 安裝Cygwin
2.3.3 配置環(huán)境變量
2.3.4 安裝sshd服務
2.3.5 啟動sshd服務
2.3.6 配置SSH免密碼登錄
2.3.7 安裝并運行Hadoop
2.4 安裝和配置Hadoop集群
2.4.1 網(wǎng)絡拓撲
2.4.2 定義集群拓撲
2.4.3 建立和安裝Cluster
2.5 日志分析及幾個小技巧
2.6 本章小結
第3章 MapReduce計算模型
3.1 為什么要用MapReduce
3.2 MapReduce計算模型
3.2.1 MapReduce Job
3.2.2 Hadoop中的Hello World程序
3.2.3 MapReduce的數(shù)據(jù)流和控制流
3.3 MapReduce任務的優(yōu)化
3.4 Hadoop流
3.4.1 Hadoop流的工作原理
3.4.2 Hadoop流的命令
3.4.3 兩個例子
3.5 Hadoop Pipes
3.6 本章小結
第4章 開發(fā)MapReduce應用程序
4.1 系統(tǒng)參數(shù)的配置
4.2 配置開發(fā)環(huán)境
4.3 編寫MapReduce程序
4.3.1 Map處理
4.3.2 Reduce處理
4.4 本地測試
4.5 運行MapReduce程序
4.5.1 打包
4.5.2 在本地模式下運行
4.5.3 在集群上運行
4.6 網(wǎng)絡用戶界面
4.6.1 JobTracker頁面
4.6.2 工作頁面
4.6.3 返回結果
4.6.4 任務頁面
4.6.5 任務細節(jié)頁面
4.7 性能調(diào)優(yōu)
4.7.1 輸入采用大文件
4.7.2 壓縮文件
4.7.3 過濾數(shù)據(jù)
4.7.4 修改作業(yè)屬性
4.8 MapReduce工作流
4.8.1 復雜的Map和Reduce函數(shù)
4.8.2 MapReduce Job中全局共享數(shù)據(jù)
4.8.3 鏈接MapReduce Job
4.9 本章小結
第5章 MapReduce應用案例
5.1 單詞計數(shù)
5.1.1 實例描述
5.1.2 設計思路
5.1.3 程序代碼
5.1.4 代碼解讀
5.1.5 程序執(zhí)行
5.1.6 代碼結果
5.1.7 代碼數(shù)據(jù)流
5.2 數(shù)據(jù)去重
5.2.1 實例描述
5.2.2 設計思路
5.2.3 程序代碼
5.3 排序
5.3.1 實例描述
5.3.2 設計思路
5.3.3 程序代碼
5.4 單表關聯(lián)
5.4.1 實例描述
5.4.2 設計思路
5.4.3 程序代碼
5.5 多表關聯(lián)
5.5.1 實例描述
5.5.2 設計思路
5.5.3 程序代碼
5.6 本章小結
第6章 MapReduce工作機制
6.1 MapReduce作業(yè)的執(zhí)行流程
6.1.1 MapReduce任務執(zhí)行總流程
6.1.2 提交作業(yè)
6.1.3 初始化作業(yè)
6.1.4 分配任務
6.1.5 執(zhí)行任務
6.1.6 更新任務執(zhí)行進度和狀態(tài)
6.1.7 完成作業(yè)
6.2 錯誤處理機制
6.2.1 硬件故障
6.2.2 任務失敗
6.3 作業(yè)調(diào)度機制
6.4 Shuffle和排序
6.4.1 Map端
6.4.2 Reduce端
6.4.3 shuffle過程的優(yōu)化
6.5 任務執(zhí)行
6.5.1 推測式執(zhí)行
6.5.2 任務JVM重用
6.5.3 跳過壞記錄
6.5.4 任務執(zhí)行環(huán)境
6.6 本章小結
第7章 Hadoop IO操作
7.1 IO操作中的數(shù)據(jù)檢查
7.2 數(shù)據(jù)的壓縮
7.2.1 Hadoop對壓縮工具的選擇
7.2.2 壓縮分割和輸入分割
7.2.3 在MapReduce程序中使用壓縮
7.3 數(shù)據(jù)的IO中序列化操作
7.3.1 Writable類
7.3.2 實現(xiàn)自己的Hadoop數(shù)據(jù)類型
7.4 針對Mapreduce的文件類
7.4.1 SequenceFile類
7.4.2 MapFile類
7.4.3 ArrayFile、SetFile和BloomMapFile
7.5 本章小結
第8章 下一代MapReduce:YARN
8.1 MapReduce V2設計需求
8.2 MapReduce V2主要思想和架構
8.3 MapReduce V2設計細節(jié)
8.4 MapReduce V2優(yōu)勢
8.5 本章小結
第9章 HDFS詳解
9.1 Hadoop的文件系統(tǒng)
9.2 HDFS簡介
9.3 HDFS體系結構
9.3.1 HDFS的相關概念
9.3.2 HDFS的體系結構
9.4 HDFS的基本操作
9.4.1 HDFS的命令行操作
9.4.2 HDFS的Web界面
9.5 HDFS常用Java API詳解
9.5.1 使用Hadoop URL讀取數(shù)據(jù)
9.5.2 使用FileSystem API讀取數(shù)據(jù)
9.5.3 創(chuàng)建目錄
9.5.4 寫數(shù)據(jù)
9.5.5 刪除數(shù)據(jù)
9.5.6 文件系統(tǒng)查詢
9.6 HDFS中的讀寫數(shù)據(jù)流
9.6.1 文件的讀取
9.6.2 文件的寫入
9.6.3 一致性模型
9.7 HDFS命令詳解
9.7.1 通過distcp進行并行復制
9.7.2 HDFS的平衡
9.7.3 使用Hadoop歸檔文件
9.7.4 其他命令
9.8 WebHDFS
9.8.1 WebHDFS的配置
9.8.2 WebHDFS命令
9.9 本章小結
第10章 Hadoop的管理
10.1 HDFS文件結構
10.2 Hadoop的狀態(tài)監(jiān)視和管理工具
10.2.1 審計日志
10.2.2 監(jiān)控日志
10.2.3 Metrics
10.2.4 Java管理擴展
10.2.5 Ganglia
10.2.6 Hadoop管理命令
10.3 Hadoop集群的維護
10.3.1 安全模式
10.3.2 Hadoop的備份
10.3.3 Hadoop的節(jié)點管理
10.3.4 系統(tǒng)升級
10.4 本章小結
第11章 Hive詳解
11.1 Hive簡介
11.1.1 Hive的數(shù)據(jù)存儲
11.1.2 Hive的元數(shù)據(jù)存儲
11.2 Hive的基本操作
11.2.1 在集群上安裝Hive
11.2.2 配置MySQL存儲Hive元數(shù)據(jù)
11.2.3 配置Hive
11.3 Hive QL詳解
11.3.1 數(shù)據(jù)定義(DDL)操作
11.3.2 數(shù)據(jù)操作(DML)
11.3.3 SQL操作
11.3.4 Hive QL使用實例
11.4 Hive網(wǎng)絡(Web UI)接口
11.4.1 Hive網(wǎng)絡接口配置
11.4.2 Hive網(wǎng)絡接口操作實例
11.5 Hive的JDBC接口
11.5.1 Eclipse環(huán)境配置
11.5.2 程序實例
11.6 Hive的優(yōu)化
11.7 本章小結
第12章 HBase詳解
12.1 HBase簡介
12.2 HBase的基本操作
12.2.1 HBase的安裝
12.2.2 運行HBase
12.2.3 HBase Shell
12.2.4 HBase配置
12.3 HBase體系結構
12.3.1 HRegion
12.3.2 HRegion服務器
12.3.3 HBase Master服務器
12.3.4 ROOT表和META表
12.3.5 ZooKeeper
12.4 HBase數(shù)據(jù)模型
12.4.1 數(shù)據(jù)模型
12.4.2 概念視圖
12.4.3 物理視圖
12.5 HBase與RDBMS
12.6 HBase與HDFS
12.7 HBase客戶端
12.8 Java API
12.9 HBase編程
12.9.1 使用Eclipse開發(fā)HBase應用程序
12.9.2 HBase編程
12.9.3 HBase與MapReduce
12.10 模式設計
12.10.1 模式設計應遵循的原則
12.10.2 學生表
12.10.3 事件表
12.11 本章小結
第13章 Mahout詳解
13.1 Mahout簡介
13.2 Mahout的安裝和配置
13.3 Mahout API簡介
13.4 Mahout中的頻繁模式挖掘
13.4.1 什么是頻繁模式挖掘
13.4.2 Mahout中的頻繁模式挖掘
13.5 Mahout中的聚類和分類
13.5.1 什么是聚類和分類
13.5.2 Mahout中的數(shù)據(jù)表示
13.5.3 將文本轉化成向量
13.5.4 Mahout中的聚類、分類算法
13.5.5 算法應用實例
13.6 Mahout應用:建立一個推薦引擎
13.6.1 推薦引擎簡介
13.6.2 使用Taste構建一個簡單的推薦引擎
13.6.3 簡單分布式系統(tǒng)下基于產(chǎn)品的推薦系統(tǒng)簡介
13.7 本章小結
第14章 Pig詳解
14.1 Pig簡介
14.2 Pig的安裝和配置
14.2.1 Pig的安裝條件
14.2.2 Pig的下載、安裝和配置
14.2.3 Pig運行模式
14.3 Pig Latin語言
14.3.1 Pig Latin語言簡介
14.3.2 Pig Latin的使用
14.3.3 Pig Latin的數(shù)據(jù)類型
14.3.4 Pig Latin關鍵字
14.4 用戶定義函數(shù)
14.4.1 編寫用戶定義函數(shù)
14.4.2 使用用戶定義函數(shù)
14.5 Zebra簡介
14.5.1 Zebra的安裝
14.5.2 Zebra的使用簡介
14.6 Pig實例
14.6.1 Local模式
14.6.2 MapReduce模式
14.7 Pig進階
14.7.1 數(shù)據(jù)實例
14.7.2 Pig數(shù)據(jù)分析
14.8 本章小結
第15章 ZooKeeper詳解
15.1 ZooKeeper簡介
15.1.1 ZooKeeper的設計目標
15.1.2 數(shù)據(jù)模型和層次命名空間
15.1.3 ZooKeeper中的節(jié)點和臨時節(jié)點
15.1.4 ZooKeeper的應用
15.2 ZooKeeper的安裝和配置
15.2.1 安裝ZooKeeper
15.2.2 配置ZooKeeper
15.2.3 運行ZooKeeper
15.3 ZooKeeper的簡單操作
15.3.1 使用ZooKeeper命令的簡單操作步驟
15.3.2 ZooKeeper API的簡單使用
15.4 ZooKeeper的特性
15.4.1 ZooKeeper的數(shù)據(jù)模型
15.4.2 ZooKeeper會話及狀態(tài)
15.4.3 ZooKeeper watches
15.4.4 ZooKeeper ACL
15.4.5 ZooKeeper的一致性保證
15.5 使用ZooKeeper進行Leader選舉
15.6 ZooKeeper鎖服務
15.6.1 ZooKeeper中的鎖機制
15.6.2 ZooKeeper提供的一個寫鎖的實現(xiàn)
15.7 使用ZooKeeper創(chuàng)建應用程序
15.7.1 使用Eclipse開發(fā)ZooKeeper應用程序
15.7.2 應用程序實例
15.8 BooKeeper
15.9 本章小結
第16章 Avro詳解
16.1 Avro介紹
16.1.1 模式聲明
16.1.2 數(shù)據(jù)序列化
16.1.3 數(shù)據(jù)排列順序
16.1.4 對象容器文件
16.1.5 協(xié)議聲明
16.1.6 協(xié)議傳輸格式
16.1.7 模式解析
16.2 Avro的CC++實現(xiàn)
16.3 Avro的Java實現(xiàn)
16.4 GenAvro(Avro IDL)語言
16.5 Avro SASL概述
16.6 本章小結
第17章 Chukwa詳解
17.1 Chukwa簡介
17.2 Chukwa架構
17.2.1 客戶端及其數(shù)據(jù)模型
17.2.2 收集器
17.2.3 歸檔器和分離解析器
17.2.4 HICC
17.3 Chukwa的可靠性
17.4 Chukwa集群搭建
17.4.1 基本配置要求
17.4.2 Chukwa的安裝
17.4.3 Chukwa的運行
17.5 Chukwa數(shù)據(jù)流的處理
17.6 Chukwa與其他監(jiān)控系統(tǒng)比較
17.7 本章小結
本章參考資料
第18章 Hadoop的常用插件與開發(fā)
18.1 Hadoop Studio的介紹和使用
18.1.1 Hadoop Studio的介紹
18.1.2 Hadoop Studio的安裝配置
18.1.3 Hadoop Studio的使用舉例
18.2 Hadoop Eclipse的介紹和使用
18.2.1 Hadoop Eclipse的介紹
18.2.2 Hadoop Eclipse的安裝配置
18.2.3 Hadoop Eclipse的使用舉例
18.3 Hadoop Streaming的介紹和使用
18.3.1 Hadoop Streaming的介紹
18.3.2 Hadoop Streaming的使用舉例
18.3.3 使用Hadoop Streaming常見的問題
18.4 Hadoop Libhdfs的介紹和使用
18.4.1 Hadoop Libhdfs的介紹
18.4.2 Hadoop Libhdfs的安裝配置
18.4.3 Hadoop Libhdfs API簡介
18.4.4 Hadoop Libhdfs的使用舉例
18.5 本章小結
第19章 企業(yè)應用實例
19.1 Hadoop在Yahoo!的應用
19.2 Hadoop在eBay的應用
19.3 Hadoop在百度的應用
19.4 即刻搜索中的Hadoop
19.4.1 即刻搜索簡介
19.4.2 即刻Hadoop應用架構
19.4.3 即刻Hadoop應用分析
19.5 Facebook中的Hadoop和HBase
19.5.1 Facebook中的任務特點
19.5.2 MySQL VS Hadoop+HBase
19.5.3 Hadoop和HBase的實現(xiàn)
19.6 本章小結
本章參考資料
附錄A 云計算在線檢測平臺
附錄B Hadoop安裝、運行與使用說明
附錄C 使用DistributedCache的MapReduce程序
附錄D 使用ChainMapper和ChainReducer的MapReduce程序
第1章
Hadoop簡介
本章內(nèi)容
什么是Hadoop
Hadoop項目及其結構
Hadoop體系結構
Hadoop與分布式開發(fā)
Hadoop計算模型—MapReduce
Hadoop數(shù)據(jù)管理
Hadoop集群安全策略
本章小結
1.1 什么是Hadoop
1.1.1 Hadoop概述
Hadoop是Apache軟件基金會旗下的一個開源分布式計算平臺。以Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)和MapReduce(Google MapReduce的開源實現(xiàn))為核心的Hadoop為用戶提供了系統(tǒng)底層細節(jié)透明的分布式基礎架構。HDFS的高容錯性、高伸縮性等優(yōu)點允許用戶將Hadoop部署在低廉的硬件上,形成分布式系統(tǒng);MapReduce分布式編程模型允許用戶在不了解分布式系統(tǒng)底層細節(jié)的情況下開發(fā)并行應用程序。所以用戶可以利用Hadoop輕松地組織計算機資源,從而搭建自己的分布式計算平臺,并且可以充分利用集群的計算和存儲能力,完成海量數(shù)據(jù)的處理。經(jīng)過業(yè)界和學術界長達10年的錘煉,目前的Hadoop 1.0.1已經(jīng)趨于完善,在實際的數(shù)據(jù)處理和分析任務中擔當著不可替代的角色。
……