出版時間:2011-6 出版社:清華大學出版社 作者:Tom White 頁數(shù):600 譯者:周敏奇,王曉玲,金澈清,錢衛(wèi)寧,周傲英
Tag標簽:無
前言
據(jù)2011年4月圣地亞哥大學公布的報告,2008年全球兩千七百萬臺服務器處理的數(shù)據(jù)量已達9.57ZB。如何有效管理和高效處理這些海量數(shù)據(jù)已成為當前亟待解決的問題。另外,三大類海量數(shù)據(jù)——商業(yè)數(shù)據(jù)、科學數(shù)據(jù)、網(wǎng)頁數(shù)據(jù)——的異構(gòu)性(結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)以及非結(jié)構(gòu)化數(shù)據(jù))又進一步加劇了海量數(shù)據(jù)處理的難度。2011年2月出版的《科學》雜志刊登專題“Special Online Collection: Dealing with Data”,圍繞著目前各類數(shù)據(jù)量的激增展開討論,認為海量數(shù)據(jù)的收集、維護和使用已成為科學研究的主要工作。對許多學科而言,海量數(shù)據(jù)處理意味著更嚴峻的挑戰(zhàn),然而更好地管理和處理這些數(shù)據(jù)也將會獲得意想不到的收獲。關(guān)系型數(shù)據(jù)庫系統(tǒng)的研究在數(shù)據(jù)管理方面積累較多經(jīng)驗。20世紀70年代,關(guān)系模型的提出以及IBM System R 和伯克利Ingres的成功開發(fā),證明了關(guān)系型數(shù)據(jù)庫系統(tǒng)處理商業(yè)數(shù)據(jù)的優(yōu)越性。20世紀80年代,由此模型派生出的IBM DB2,Sybase SQL Server、Oracle Database等以聯(lián)機事務處理(OLTP)為主的數(shù)據(jù)庫系統(tǒng)的蓬勃發(fā)展,使數(shù)據(jù)庫系統(tǒng)得以充分的商業(yè)化。20世紀90年代,W. H. Inmon提出的整合歷史數(shù)據(jù),通過在線分析(OLAP)和數(shù)據(jù)挖掘等方法實現(xiàn)商業(yè)規(guī)劃、決策支持等商業(yè)智能服務的數(shù)據(jù)倉庫系統(tǒng),為數(shù)據(jù)庫系統(tǒng)的應用翻開了嶄新的篇章。然而,面對當下的海量數(shù)據(jù),這一近40年歷史、一體適用(one size fits all)的數(shù)據(jù)庫系統(tǒng)架構(gòu)顯得老態(tài)龍鐘,力不從心,逐漸無法應對當前的需求。自從2003年以來,谷歌陸續(xù)發(fā)布GFS和MapReduce等高可擴展、高性能的分布式海量數(shù)據(jù)處理框架,并證明了該框架在處理海量網(wǎng)頁數(shù)據(jù)時的優(yōu)越性。該框架實現(xiàn)了更高應用層次的抽象,使用戶無需關(guān)注復雜的內(nèi)部工作機制,無需具備豐富的分布式系統(tǒng)知識及開發(fā)經(jīng)驗,即可實現(xiàn)大規(guī)模分布式系統(tǒng)的部署與海量數(shù)據(jù)的并行處理。Apache Hadoop開源項目克隆了這一框架,推出了Hadoop系統(tǒng)。該系統(tǒng)已受到學術(shù)界和工業(yè)界的廣泛認可和采納,并孵化出眾多子項目(如Pig,Zookeeper和Hive等),日益形成一個易部署、易開發(fā)、功能齊全、性能優(yōu)良的系統(tǒng)。華東師范大學海量計算研究所從2006年開始從事海量數(shù)據(jù)方面的研究,且在集群(288核,40TB存儲)上部署了Hadoop系統(tǒng),并成功完成多項研究。多年來從事海量數(shù)據(jù)學術(shù)研究和項目實施的相關(guān)經(jīng)歷,使得我們對Hadoop系統(tǒng)及其開發(fā)有了較深入的理解和認識,并在Hadoop部署、調(diào)優(yōu)和優(yōu)化等方面積累了豐富的經(jīng)驗。2010年,Hadoop項目負責人Tom White的《Hadoop權(quán)威指南》出版第2版。這本書內(nèi)容組織得很好,思路清晰,緊密結(jié)合了實際問題。
內(nèi)容概要
本書從Hadoop的緣起開始,由淺入深,結(jié)合理論和實踐,全方位地介紹Hadoop這一高性能處理海量數(shù)據(jù)集的理想工具。全書共16章,3個附錄,涉及的主題包括:Haddoop簡介;MapReduce簡介;Hadoop分布式文件系統(tǒng);Hadoop的I/O、MapReduce應用程序開發(fā);MapReduce的工作機制;MapReduce的類型和格式;MapReduce的特性;如何構(gòu)建Hadoop集群,如何管理Hadoop;Pig簡介;Hbase簡介;Hive簡介;ZooKeeper簡介;開源工具Sqoop,最后還提供了豐富的案例分析。
本書是Hadoop權(quán)威參考,程序員可從中探索如何分析海量數(shù)據(jù)集,管理員可以從中了解如何安裝與運行Hadoop集群。
作者簡介
作者:(美國)懷特 (Tom White) 譯者:周敏奇 錢衛(wèi)寧 金澈清 王曉玲懷特(Tom White),從2007年以來,一直擔任Apache Hadoop項目負責人。他是Apache軟件基金會的成員之一,同時也是Cloudera的一名工程師。Tom為oreully網(wǎng)、java.net和IBM的developerWorks寫過大量文章,并經(jīng)常在很多行業(yè)大會上發(fā)表演講。
書籍目錄
第1章 初識Hadoop
數(shù)據(jù)!數(shù)據(jù)!
數(shù)據(jù)存儲與分析
與其他系統(tǒng)相比
關(guān)系型數(shù)據(jù)庫管理系統(tǒng)
網(wǎng)格計算
志愿計算
1.3.4 Hadoop 發(fā)展簡史
Apache Hadoop和Hadoop生態(tài)圈
第2章 關(guān)于MapReduce
一個氣象數(shù)據(jù)集
數(shù)據(jù)的格式
使用Unix工具進行數(shù)據(jù)分析
使用Hadoop分析數(shù)據(jù)
map階段和reduce階段
橫向擴展
合并函數(shù)
運行一個分布式的MapReduce作業(yè)
Hadoop的Streaming
Ruby版本
Python版本
Hadoop Pipes
編譯運行
第3章 Hadoop分布式文件系統(tǒng)
HDFS的設(shè)計
HDFS的概念
數(shù)據(jù)塊
namenode和datanode
命令行接口
基本文件系統(tǒng)操作
Hadoop文件系統(tǒng)
接口
Java接口
從Hadoop URL中讀取數(shù)據(jù)
通過FileSystem API讀取數(shù)據(jù)
寫入數(shù)據(jù)
目錄
查詢文件系統(tǒng)
刪除數(shù)據(jù)
數(shù)據(jù)流
文件讀取剖析
文件寫入剖析
一致模型
通過 distcp并行拷貝
保持 HDFS 集群的均衡
Hadoop的歸檔文件
使用Hadoop歸檔文件
不足
第4章 Hadoop I/O
數(shù)據(jù)完整性
HDFS的數(shù)據(jù)完整性
LocalFileSystem
ChecksumFileSystem
壓縮
codec
壓縮和輸入切分
在MapReduce中使用壓縮
序列化
Writable接口
Writable類
實現(xiàn)定制的Writable類型
序列化框架
Avro
依據(jù)文件的數(shù)據(jù)結(jié)構(gòu)
寫入SequenceFile
MapFile
第5章 MapReduce應用開發(fā)
配置API
合并多個源文件
可變的擴展
配置開發(fā)環(huán)境
配置管理
輔助類GenericOptionsParser,Tool和ToolRunner
編寫單元測試
mapper
reducer
本地運行測試數(shù)據(jù)
在本地作業(yè)運行器上運行作業(yè)
測試驅(qū)動程序
在集群上運行
打包
啟動作業(yè)
MapReduce的Web界面
獲取結(jié)果
作業(yè)調(diào)試
使用遠程調(diào)試器
作業(yè)調(diào)優(yōu)
分析任務
MapReduce的工作流
將問題分解成MapReduce作業(yè)
運行獨立的作業(yè)
第6章 MapReduce的工作機制
剖析MapReduce作業(yè)運行機制
作業(yè)的提交
作業(yè)的初始化
任務的分配
任務的執(zhí)行
進度和狀態(tài)的更新
作業(yè)的完成
失敗
任務失敗
tasktracker失敗
jobtracker失敗
作業(yè)的調(diào)度
Fair Scheduler
Capacity Scheduler
shuffle和排序
map端
reduce端
配置的調(diào)優(yōu)
任務的執(zhí)行
推測式執(zhí)行
重用JVM
跳過壞記錄
任務執(zhí)行環(huán)境
第7章 MapReduce的類型與格式
MapReduce的類型
默認的MapReduce作業(yè)
輸入格式
輸入分片與記錄
文本輸入
二進制輸入
多種輸入
數(shù)據(jù)庫輸入(和輸出)
輸出格式
文本輸出
二進制輸出
多個輸出
延遲輸出
數(shù)據(jù)庫輸出
第8章 MapReduce的特性
計數(shù)器
內(nèi)置計數(shù)器
用戶定義的Java計數(shù)器
用戶定義的Streaming計數(shù)器
排序
準備
部分排序
總排序
二次排序
聯(lián)接
map端聯(lián)接
reduce端聯(lián)接
邊數(shù)據(jù)分布
利用JobConf來配置作業(yè)
分布式緩存
MapReduce庫類
第9章 構(gòu)建Hadoop集群
集群規(guī)范
網(wǎng)絡拓撲
集群的構(gòu)建和安裝
安裝Java
創(chuàng)建Hadoop用戶
安裝Hadoop
測試安裝
SSH配置
Hadoop配置
配置管理
環(huán)境設(shè)置
Hadoop守護進程的關(guān)鍵屬性
Hadoop守護進程的地址和端口
Hadoop的其他屬性
創(chuàng)建用戶帳號
安全性
Kerberos和Hadoop
委托令牌
其他安全性改進
利用基準測試程序測試Hadoop集群
Hadoop基準測試程序
用戶的作業(yè)
云上的Hadoop
Amazon EC2上的Hadoop
第10章 管理Hadoop
HDFS
永久性數(shù)據(jù)結(jié)構(gòu)
安全模式
日志審計
工具
監(jiān)控
日志
度量
Java管理擴展(JMX)
維護
日常管理過程
委任節(jié)點和解除節(jié)點
升級
第11章 Pig簡介
安裝與運行Pig
執(zhí)行類型
運行Pig程序
Grunt
Pig Latin編輯器
示例
生成示例
與數(shù)據(jù)庫比較
PigLatin
結(jié)構(gòu)
語句
表達式
1.4.4 類型
模式
函數(shù)
用戶自定義函數(shù)
過濾UDF
計算UDF
加載UDF
數(shù)據(jù)處理操作
加載和存儲數(shù)據(jù)
過濾數(shù)據(jù)
分組與連接數(shù)據(jù)
對數(shù)據(jù)進行排序
組合和分割數(shù)據(jù)
Pig實戰(zhàn)
并行處理
參數(shù)代換
第12章 Hive
1.1 安裝Hive
1.1.1 Hive外殼環(huán)境
1.2 示例
1.3 運行Hive
1.3.1 配置Hive
1.3.2 Hive服務
1.3.3 Metastore
1.4 和傳統(tǒng)數(shù)據(jù)庫進行比較
1.4.1 讀時模式(Schema on Read)vs.寫時模式(Schema on
Write)
1.4.2 更新、事務和索引
1.5 HiveQL
1.5.1 數(shù)據(jù)類型
1.5.2 操作和函數(shù)
1.6 表
1.6.1 托管表(Managed Tables)和外部表(External Tables)
1.6.2 分區(qū)(Partitions)和桶(Buckets)
1.6.3 存儲格式
1.6.4 導入數(shù)據(jù)
1.6.5 表的修改
1.6.6 表的丟棄
1.7 查詢數(shù)據(jù)
1.7.1 排序(Sorting)和聚集(Aggregating)
1.7.2 MapReduce腳本
1.7.3 連接
1.7.4 子查詢
1.7.5 視圖(view)
1.8 用戶定義函數(shù)(User-Defined Functions)
1.8.1 編寫UDF
1.8.2 編寫UDAF
第13章 HBase
2.1 HBasics
2.1.1 背景
2.2 概念
2.2.1 數(shù)據(jù)模型的“旋風之旅”
2.2.2 實現(xiàn)
2.3 安裝
2.3.1 測試驅(qū)動
2.4 客戶機
2.4.1 Java
2.4.2 Avro,REST,以及Thrift
2.5 示例
2.5.1 模式
2.5.2 加載數(shù)據(jù)
2.5.3 Web查詢
2.6 HBase和RDBMS的比較
2.6.1 成功的服務
2.6.2 HBase
2.6.3 實例:HBase在Streamy.com的使用
2.7 Praxis
2.7.1 版本
2.7.2 HDFS
2.7.3 用戶接口(UI)
2.7.4 度量(metrics)
2.7.5 模式設(shè)計
2.7.6 計數(shù)器
2.7.7 批量加載(bulkloading)
第14章 ZooKeeper
安裝和運行ZooKeeper
示例
ZooKeeper中的組成員關(guān)系
創(chuàng)建組
加入組
列出組成員
ZooKeeper服務
數(shù)據(jù)模型
操作
實現(xiàn)
一致性
會話
狀態(tài)
使用ZooKeeper來構(gòu)建應用
配置服務
具有可恢復性的ZooKeeper應用
鎖服務
生產(chǎn)環(huán)境中的ZooKeeper
可恢復性和性能
配置
第15章 開源工具Sqoop
獲取Sqoop
一個導入的例子
生成代碼
其他序列化系統(tǒng)
深入了解數(shù)據(jù)庫導入
導入控制
導入和一致性
直接模式導入
使用導入的數(shù)據(jù)
導入的數(shù)據(jù)與Hive
導入大對象
執(zhí)行導出
深入了解導出
導出與事務
導出和SequenceFile
第16章 實例分析
Hadoop 在Last.fm的應用
Last.fm:社會音樂史上的革命
Hadoop a Last.fm
用Hadoop產(chǎn)生圖表
Track Statistics程序
總結(jié)
Hadoop和Hive在Facebook的應用
概要介紹
Hadoop a Facebook
假想的使用情況案例
Hive
問題與未來工作計劃
Nutch 搜索引擎
背景介紹
數(shù)據(jù)結(jié)構(gòu)
Nutch系統(tǒng)利用Hadoop進行數(shù)據(jù)處理的精選實例
總結(jié)
Rackspace的日志處理
簡史
選擇Hadoop
收集和存儲
日志的MapReduce模型
關(guān)于Cascading
字段、元組和管道
操作
Tap類,Scheme對象和Flow對象
Cascading實戰(zhàn)
靈活性
Hadoop和Cascading在ShareThis的應用
總結(jié)
在Apache Hadoop上的TB字節(jié)數(shù)量級排序
使用Pig和Wukong來探索10億數(shù)量級邊的 網(wǎng)絡圖
測量社區(qū)
每個人都在和我說話:Twitter回復關(guān)系圖
degree(度)
對稱鏈接
社區(qū)提取
附錄A 安裝Apache Hadoop
先決條件
安裝
配置
本機模式
偽分布模式
全分布模式
附錄B Cloudera’s Distribution for Hadoop
附錄C 準備NCDC天氣數(shù)據(jù)
章節(jié)摘錄
版權(quán)頁:插圖:Hadoop起源于Nutch項目。我們曾嘗試構(gòu)建一個開源的Web搜索引擎,但是始終無法有效地將計算任務分配到多臺(也就寥寥幾臺)計算機上。直到谷歌公司發(fā)表GFS和MapReduce的相關(guān)論文,我們的思路才清晰起來。他們設(shè)計的系統(tǒng)已可精準地解決我們在Nutch項目中面臨的困境。因此,我們(兩個半天工作制的人)也嘗試重建這些系統(tǒng),將其作為Nutch的一部分。我們成功地在20多臺機器上運行了Nutch。但是我們很快就意識到,只有在幾千臺機器上運行Nutch才能夠應付Web的超大規(guī)模,但這個工作量遠遠不是兩個半天工作制的開發(fā)人員能搞定的。幾乎就在那個時候,雅虎公司也對這項技術(shù)產(chǎn)生了濃厚的興趣,并迅速組建了一支開發(fā)團隊。我有幸成為其中一員。我們剝離了Nutch的分布式計算模塊,將其稱為Hadoop。在雅虎的幫助下,Hadoop很快就能夠真正處理Web數(shù)據(jù)了。從2006年起,Tom White就對Hadoop貢獻良多。我很早以前通過他的一篇非常優(yōu)秀的有關(guān)Nutch的論文認識了他,在這篇論文中,他以一種優(yōu)美的筆調(diào)清晰地闡述了深刻的想法。很快,我發(fā)現(xiàn)他開發(fā)的軟件也同樣優(yōu)美且易于理解。Tom從一開始就樂于站在用戶和項目的角度來考慮問題。與其他開源程序開發(fā)人員不同,Tom不會刻意調(diào)整系統(tǒng)使其更加符合他個人的需要,而是盡可能地讓所有用戶用起來都很方便。Tom最初專注于如何讓Hadoop在亞馬遜的EC2和S3服務上運行良好。之后,他轉(zhuǎn)而解決更為廣泛的難題,包括如何提高MapReduce API,如增加強網(wǎng)站,如何設(shè)計對象序列化框架,等等。在所有工作中,Tom都非常精準地闡明了想法。在很短的時間里,Tom進入了Hadoop委員會,并在不久之后成為Hadoop項目管理委員會的一員?,F(xiàn)在,Tom是一個受人尊敬的Hadoop開發(fā)社區(qū)的高級成員。盡管他是這個項目多個技術(shù)領(lǐng)域的專家,但他的專長是使Hadoop易于理解和使用。因此,當我得知Tom有意寫一本關(guān)于Hadoop的書時,我非常高興。是的,誰能夠比他更勝任呢?現(xiàn)在,你們有機會向這位大師學習Hadoop——不單單是技術(shù),也包括一些常識和通俗的筆調(diào)。
媒體關(guān)注與評論
“有了這本權(quán)威指南,讀者有機會通過大師的手筆來學習Hadoop——在掌握技術(shù)的同時,領(lǐng)略作者的睿智和清晰的文風?!薄 狧adoop創(chuàng)始人 Doug Cutting于Cloudera
編輯推薦
《Hadoop權(quán)威指南(第2版)(修訂?升級版)》編輯推薦:Google帝國的基石是什么?MapReduce算法!開源項目Hadoop作為它的一個具體實現(xiàn),可以輕松用于構(gòu)建和維護一個可靠性高、伸縮性強的分布式系統(tǒng)。作者Tom White作為Hadoop的項目負責人,通過自己對Hadoop和Hadoop社區(qū)的理解,化繁為簡,用淺顯易懂的語言介紹了Hadoop能做什么,怎么做才能充分發(fā)揮Hadoop的優(yōu)勢,Hadoop能夠和哪些開源工具結(jié)合使用。《Hadoop權(quán)威指南(第2版)》是一本主題豐富、講解透徹的權(quán)威參考書,可幫助程序員了解分析海量數(shù)據(jù)集的細枝末節(jié),幫助管理員掌握搭建和運行Hadoop集群的具體過程。經(jīng)過修訂和更新的第2版概述了Hadoop的最新動態(tài),例如Hive、sqoop和Avro等。書中還提供了案例分析來幫助讀者了解如何用Hadoop來解決具體的問題。如果想充分利用數(shù)據(jù),從中挖掘出有價值的見解或者觀點,毫無疑問,《Hadoop權(quán)威指南(第2版)(修訂?升級版)》將是您不可或缺的重要參考?!罢l說大象不能跳舞?Hadoop-輕松應對海量數(shù)據(jù)存儲與分析所帶來的挑戰(zhàn)!”使用Hadoop分布式文件系統(tǒng)(HDFS)來存儲大型數(shù)據(jù)集,然后用MapReduce對這些數(shù)據(jù)II執(zhí)行分布式計算。Hadoop的數(shù)據(jù)和I/O構(gòu)建塊(用于壓縮、數(shù)據(jù)完整性、序列化和持久處理)。探究MapReduce應用開發(fā)中常見的陷阱和高級特性。設(shè)計,構(gòu)建和管理Hadoop專用集群或在云上運行Hadoop。使用Pig這種高級的查詢語言來進行大規(guī)模數(shù)據(jù)處理。使用Hive(Hadoop的數(shù)據(jù)倉庫系統(tǒng))來分析數(shù)據(jù)集。使用HBase(Hadoop的數(shù)據(jù)庫)來處理結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)。深入介紹Zookeeper,一個用于構(gòu)建分布式系統(tǒng)的協(xié)作類型工具箱。Cloudera是一家行業(yè)領(lǐng)先的Hadoop軟件和服務供應商。Cloudera's Distribution forHadoop (CDH)是一個基于Apache Hadoop的綜合性數(shù)據(jù)管理平臺,Cloudera Enterprise則包括一些工具、平臺和支持,供生產(chǎn)環(huán)境中使用Hadoop時使用。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載