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