出版時(shí)間:2011-10 出版社:人民郵電 作者:Chuck Lam 譯者:韓冀中
Tag標(biāo)簽:無(wú)
內(nèi)容概要
作為云計(jì)算所青睞的分布式架構(gòu),Hadoop 是一個(gè)用Java
語(yǔ)言實(shí)現(xiàn)的軟件框架,在由大量計(jì)算機(jī)組成的集群中運(yùn)行海量數(shù)據(jù)的分布式計(jì)算,是谷歌實(shí)現(xiàn)云計(jì)算的重要基石。本書分為3
個(gè)部分,深入淺出地介紹了Hadoop 框架、編寫和運(yùn)行Hadoop 數(shù)據(jù)處理程序所需的實(shí)踐技能及Hadoop
之外更大的生態(tài)系統(tǒng)。
本書適合需要處理大量離線數(shù)據(jù)的云計(jì)算程序員、架構(gòu)師和項(xiàng)目經(jīng)理閱讀參考。
作者簡(jiǎn)介
作者:(美國(guó))Chuck Lam 譯者:韓冀中Chuck Lam 目前建立了一家名為Rollcall的移動(dòng)社交網(wǎng)絡(luò)公司,讓活躍的個(gè)體用戶擁有了一個(gè)社交助理。他曾任RockYou的高級(jí)技術(shù)組長(zhǎng),開發(fā)了社交應(yīng)用程序和數(shù)據(jù)處理基礎(chǔ)架構(gòu),能夠支撐上億的用戶。在斯坦福大學(xué)攻讀博士學(xué)位的時(shí)候,Chuck就對(duì)大數(shù)據(jù)產(chǎn)生了興趣。他的論文“Computational Data Acquisition”吸納了開源軟件和網(wǎng)絡(luò)游戲等領(lǐng)域的思想,首創(chuàng)了可用于機(jī)器學(xué)習(xí)的數(shù)據(jù)采集方法。韓冀中博士,中國(guó)科學(xué)院計(jì)算技術(shù)研究所副研究員,研究生導(dǎo)師,長(zhǎng)期從事并行分布式計(jì)算領(lǐng)域的科研工作,國(guó)內(nèi)早期的Hadoop使用者之一,有著豐富的相關(guān)應(yīng)用開發(fā)經(jīng)驗(yàn)。
書籍目錄
第一部分 Hadoop——一種分布式編程框架
第1章 Hadoop簡(jiǎn)介
1.1 為什么寫《Hadoop 實(shí)戰(zhàn)》
1.2 什么是Hadoop
1.3 了解分布式系統(tǒng)和Hadoop
1.4 比較SQL 數(shù)據(jù)庫(kù)和Hadoop
1.5 理解MapReduce
1.5.1 動(dòng)手?jǐn)U展一個(gè)簡(jiǎn)單程序
1.5.2 相同程序在MapReduce中的擴(kuò)展
1.6 用Hadoop統(tǒng)計(jì)單詞——運(yùn)行第一個(gè)程序
1.7 Hadoop歷史
1.8 小結(jié)
1.9 資源
第2章 初識(shí)Hadoop
2.1 Hadoop 的構(gòu)造模塊
2.1.1 NameNode
2.1.2 DataNode
2.1.3 Secondary NameNode
2.1.4 JobTracker
2.1.5 TaskTracker
2.2 為Hadoop 集群安裝SSH
2.2.1 定義一個(gè)公共賬號(hào)
2.2.2 驗(yàn)證SSH安裝
2.2.3 生成SSH密鑰對(duì)
2.2.4 將公鑰分布并登錄驗(yàn)證
2.3 運(yùn)行Hadoop
2.3.1 本地(單機(jī))模式
2.3.2 偽分布模式
2.3.3 全分布模式
2.4 基于Web 的集群用戶界面
2.5 小結(jié)
第3章 Hadoop組件
3.1 HDFS 文件操作
3.1.1 基本文件命令
3.1.2 編程讀寫HDFS
3.2 剖析MapReduce 程序
3.2.1 Hadoop數(shù)據(jù)類型
3.2.2 Mapper
3.2.3 Reducer
3.2.4 Partitioner:重定向Mapper輸出
3.2.5 Combiner:本地reduce
3.2.6 預(yù)定義mapper和Reducer類的單詞計(jì)數(shù)
3.3 讀和寫
3.3.1 InputFormat
3.3.2 OutputFormat
3.4 小結(jié)
第二部分 實(shí)戰(zhàn)
第4章 編寫MapReduce基礎(chǔ)程序
4.1 獲得專利數(shù)據(jù)集
4.1.1 專利引用數(shù)據(jù)
4.1.2 專利描述數(shù)據(jù)
4.2 構(gòu)建MapReduce 程序的基礎(chǔ)模板
4.3 計(jì)數(shù)
4.4 適應(yīng)Hadoop API 的改變
4.5 Hadoop 的Streaming
4.5.1 通過(guò)Unix命令使用Streaming
4.5.2 通過(guò)腳本使用Streaming
4.5.3 用Streaming處理鍵/值對(duì)
4.5.4 通過(guò)Aggregate包使用Streaming
4.6 使用combiner 提升性能
4.7 溫故知新
4.8 小結(jié)
4.9 更多資源
第5章 高階MapReduce
5.1 鏈接MapReduce 作業(yè)
5.1.1 順序鏈接MapReduce作業(yè)
5.1.2 具有復(fù)雜依賴的MapReduce鏈接
5.1.3 預(yù)處理和后處理階段的鏈接
5.2 聯(lián)結(jié)不同來(lái)源的數(shù)據(jù)
5.2.1 Reduce側(cè)的聯(lián)結(jié)
5.2.2 基于DistributedCache的復(fù)制聯(lián)結(jié)
5.2.3 半聯(lián)結(jié):map側(cè)過(guò)濾后在reduce側(cè)聯(lián)結(jié)
5.3 創(chuàng)建一個(gè)Bloom filter
5.3.1 Bloom filter做了什么
5.3.2 實(shí)現(xiàn)一個(gè)Bloom filter
5.3.3 Hadoop 0.20 以上版本的Bloom filter
5.4 溫故知新
5.5 小結(jié)
5.6 更多資源
第6章 編程實(shí)踐
6.1 開發(fā)MapReduce 程序
6.1.1 本地模式
6.1.2 偽分布模式
6.2 生產(chǎn)集群上的監(jiān)視和調(diào)試
6.2.1 計(jì)數(shù)器
6.2.2 跳過(guò)壞記錄
6.2.3 用IsolationRunner重新運(yùn)行出錯(cuò)的任務(wù)
6.3 性能調(diào)優(yōu)
6.3.1 通過(guò)combiner來(lái)減少網(wǎng)絡(luò)流量
6.3.2 減少輸入數(shù)據(jù)量
6.3.3 使用壓縮
6.3.4 重用JVM
6.3.5 根據(jù)猜測(cè)執(zhí)行來(lái)運(yùn)行
6.3.6 代碼重構(gòu)與算法重寫
6.4 小結(jié)
第7章 細(xì)則手冊(cè)
7.1 向任務(wù)傳遞作業(yè)定制的參數(shù)
7.2 探查任務(wù)特定信息
7.3 劃分為多個(gè)輸出文件
7.4 以數(shù)據(jù)庫(kù)作為輸入輸出
7.5 保持輸出的順序
7.6 小結(jié)
第8章 管理Hadoop
8.1 為實(shí)際應(yīng)用設(shè)置特定參數(shù)值
8.2 系統(tǒng)體檢
8.3 權(quán)限設(shè)置
8.4 配額管理
8.5 啟用回收站
8.6 刪減DataNode
8.7 增加DataNode
8.8 管理NameNode 和SNN
8.9 恢復(fù)失效的NameNode
8.10 感知網(wǎng)絡(luò)布局和機(jī)架的設(shè)計(jì)
8.11 多用戶作業(yè)的調(diào)度
8.11.1 多個(gè)JobTracker
8.11.2 公平調(diào)度器
8.12 小結(jié)
第三部分 Hadoop也瘋狂
第9章 在云上運(yùn)行Hadoop
9.1 Amazon Web Services 簡(jiǎn)介
9.2 安裝AWS
9.2.1 獲得AWS身份認(rèn)證憑據(jù)
9.2.2 獲得命令行工具
9.2.3 準(zhǔn)備SSH密鑰對(duì)
9.3 在EC2 上安裝Hadoop
9.3.1 配置安全參數(shù)
9.3.2 配置集群類型
9.4 在EC2 上運(yùn)行MapReduce 程序
9.4.1 將代碼轉(zhuǎn)移到Hadoop集群上
9.4.2 訪問(wèn)Hadoop集群上的數(shù)據(jù)
9.5 清空和關(guān)閉EC2 實(shí)例
9.6 Amazon Elastic MapReduce 和其他AWS 服務(wù)
9.6.1 Amazon Elastic MapReduce
9.6.2 AWS導(dǎo)入/導(dǎo)出
9.7 小結(jié)
第10章 用Pig編程
10.1 像Pig 一樣思考
10.1.1 數(shù)據(jù)流語(yǔ)言
10.1.2 數(shù)據(jù)類型
10.1.3 用戶定義函數(shù)
10.2 安裝Pig
10.3 運(yùn)行Pig
10.4 通過(guò)Grunt 學(xué)習(xí)Pig Latin
10.5 談?wù)凱ig Latin
10.5.1 數(shù)據(jù)類型和schema
10.5.2 表達(dá)式和函數(shù)
10.5.3 關(guān)系型運(yùn)算符
10.5.4 執(zhí)行優(yōu)化
10.6 用戶定義函數(shù)
10.6.1 使用UDF
10.6.2 編寫UDF
10.7 腳本
10.7.1 注釋
10.7.2 參數(shù)替換
10.7.3 多查詢執(zhí)行
10.8 Pig 實(shí)戰(zhàn)——計(jì)算相似專利的例子
10.9 小結(jié)
第11章 Hive及Hadoop群
11.1 Hive
11.1.1 安裝與配置Hive
11.1.2 查詢的示例
11.1.3 深入HiveQL
11.1.4 Hive小結(jié)
11.2 其他Hadoop 相關(guān)的部分
11.2.1 HBase
11.2.2 ZooKeeper
11.2.3 Cascading
11.2.4 Cloudera
11.2.5 Katta
11.2.6 CloudBase
11.2.7 Aster Data和Greenplum
11.2.8 Hama和Mahout
11.2.9 search-hadoop.com
11.3 小結(jié)
第12章 案例研究
12.1 轉(zhuǎn)換《紐約時(shí)報(bào)》1100 萬(wàn)個(gè)庫(kù)存圖片文檔
12.2 挖掘中國(guó)移動(dòng)的數(shù)據(jù)
12.3 在StumbleUpon 推薦最佳網(wǎng)站
12.3.1 分布式StumbleUpon 的開端
12.3.2 HBase 和StumbleUpon
12.3.3 StumbleUpon 上的更多Hadoop 應(yīng)用
12.4 搭建面向企業(yè)查詢的分析系統(tǒng)——IBM的ES2 項(xiàng)目
12.4.1 ES2 系統(tǒng)結(jié)構(gòu)
12.4.2 ES2 爬蟲
12.4.3 ES2 分析
12.4.4 小結(jié)
12.4.5 參考文獻(xiàn)
附錄A HDFS文件命令
章節(jié)摘錄
版權(quán)頁(yè):插圖:通常情況下,擴(kuò)展數(shù)據(jù)庫(kù)涉及增加讀操作的從節(jié)點(diǎn)以及系統(tǒng)的緩存。只有當(dāng)你的應(yīng)用程序讀多寫少時(shí),增加讀操作的從節(jié)點(diǎn)才有作用。如果你的數(shù)據(jù)集更改并不頻繁,緩存才有作用。即便如此,這些系統(tǒng)結(jié)構(gòu)的特征也總是會(huì)在應(yīng)用層增加巨大的復(fù)雜性。HBase駐留在集群上任何一個(gè)機(jī)器的每個(gè)區(qū)域上(每個(gè)都是區(qū)域服務(wù)器)。寫操作涉及托管該區(qū)域的區(qū)域服務(wù)器,而HBase的區(qū)域服務(wù)器(默認(rèn)情況下)寫入3個(gè)HDFS數(shù)據(jù)節(jié)點(diǎn)?;谝粋€(gè)大表和一個(gè)同樣大的集群,寫操作被分散到很多不同的機(jī)器上,從根本上避免了主/從數(shù)據(jù)存儲(chǔ)所具有的單機(jī)寫瓶頸問(wèn)題。這個(gè)特征可以幫助你使用傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)成本的很小一部分來(lái)獲得擴(kuò)展。隨著大型硬件系統(tǒng)與其所提供的實(shí)際性能相比越來(lái)越昂貴,這是一個(gè)影響相當(dāng)深遠(yuǎn)而重要的能力。對(duì)于在StumbleUpon的大型工作負(fù)載,單從字面上就可能節(jié)省數(shù)百萬(wàn)美元。還有一些問(wèn)題在單機(jī)系統(tǒng)中根本無(wú)法得到解決!對(duì)于高度動(dòng)態(tài)的數(shù)據(jù)集,我們經(jīng)常讀取剛剛寫入的內(nèi)容,這樣系統(tǒng)中的緩存,如memcached,可能無(wú)法提供很多幫助。HBase在寫緩沖區(qū)中保存最近寫入的數(shù)據(jù)。讀取的數(shù)據(jù)直接來(lái)自內(nèi)存。此操作可以完全避免使用緩存層。高度動(dòng)態(tài)的數(shù)據(jù)集的一個(gè)例子是事件計(jì)數(shù)器。這是一個(gè)困難的問(wèn)題,因?yàn)榇蠖鄶?shù)高速解決方案往往是只有利用內(nèi)存才能滿足性能(比如memcached),但又無(wú)法滿足持久性。考慮HBase及其incrementColunnValue()調(diào)用。通過(guò)在磁盤中記錄日志并緩沖到寫緩沖區(qū),讀取可以直接來(lái)自寫緩沖區(qū),達(dá)到高性能和高持久性。StumbleUpon利用HBase的能力來(lái)對(duì)網(wǎng)站的每個(gè)事件進(jìn)行統(tǒng)計(jì)——單擊、點(diǎn)擊率、廣告送達(dá)等。此外,HBase為典型的分區(qū)方案提供了絕佳的選擇。大多數(shù)傳統(tǒng)的分區(qū)方法需要對(duì)鍵空間的先驗(yàn)假設(shè)。當(dāng)散列函數(shù)分布不均勻時(shí),或鍵的分布違背了分區(qū)的假設(shè)時(shí),就會(huì)對(duì)性能造成嚴(yán)重的影響。
媒體關(guān)注與評(píng)論
“本書是初學(xué)者的指路明燈,是高級(jí)用戶的洞察力之源?!薄 狿hilipp K Janert,Principal Value公司“為你全面闡釋Hadoop的內(nèi)容、成因和運(yùn)行機(jī)理?!薄 狿aul Stusiak,F(xiàn)alcon技術(shù)公司“將Hadoop闡釋清楚的最佳圖書l” ——Rick Wagner,Acxiom公司“全面覆蓋Hadoop f他書無(wú)而本書有?!薄 狫ohn S Griffin, Overstock.com“本書是對(duì)Hadoop和MapReduce的極佳介紹。,” ——Kenneth DeLong,BabyCenter公司
編輯推薦
《Hadoop實(shí)戰(zhàn)》縱情享受海量數(shù)據(jù)之美、揭開云計(jì)算的神秘面紗、深入分析,追本溯源。ApacheHadoop是一個(gè)NoSQL應(yīng)用程序框架,在分布式集群中運(yùn)行,它適合于處理大數(shù)據(jù)集。如果需要從數(shù)據(jù)中分析信息,那么Hadoop是你的最佳選擇?!禜adoop實(shí)戰(zhàn)》是一本深受讀者好評(píng)的專著,旨在教會(huì)你如何以MapReduce方式編寫程序,其中包含MapReduce編程中的最佳實(shí)踐及設(shè)計(jì)模式。書中內(nèi)容由淺入深,以幾個(gè)簡(jiǎn)單的例子開始,繼而轉(zhuǎn)向Hadoop在較為復(fù)雜的數(shù)據(jù)分析中的應(yīng)用.,此外,還介紹了StreamingAPI及Pig和Hive等工具。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載