出版時間:2011-10 出版社:人民郵電 作者:Chuck Lam 譯者:韓冀中
Tag標(biāo)簽:無
內(nèi)容概要
作為云計算所青睞的分布式架構(gòu),Hadoop 是一個用Java
語言實現(xiàn)的軟件框架,在由大量計算機(jī)組成的集群中運行海量數(shù)據(jù)的分布式計算,是谷歌實現(xiàn)云計算的重要基石。本書分為3
個部分,深入淺出地介紹了Hadoop 框架、編寫和運行Hadoop 數(shù)據(jù)處理程序所需的實踐技能及Hadoop
之外更大的生態(tài)系統(tǒng)。
本書適合需要處理大量離線數(shù)據(jù)的云計算程序員、架構(gòu)師和項目經(jīng)理閱讀參考。
作者簡介
作者:(美國)Chuck Lam 譯者:韓冀中Chuck Lam 目前建立了一家名為Rollcall的移動社交網(wǎng)絡(luò)公司,讓活躍的個體用戶擁有了一個社交助理。他曾任RockYou的高級技術(shù)組長,開發(fā)了社交應(yīng)用程序和數(shù)據(jù)處理基礎(chǔ)架構(gòu),能夠支撐上億的用戶。在斯坦福大學(xué)攻讀博士學(xué)位的時候,Chuck就對大數(shù)據(jù)產(chǎn)生了興趣。他的論文“Computational Data Acquisition”吸納了開源軟件和網(wǎng)絡(luò)游戲等領(lǐng)域的思想,首創(chuàng)了可用于機(jī)器學(xué)習(xí)的數(shù)據(jù)采集方法。韓冀中博士,中國科學(xué)院計算技術(shù)研究所副研究員,研究生導(dǎo)師,長期從事并行分布式計算領(lǐng)域的科研工作,國內(nèi)早期的Hadoop使用者之一,有著豐富的相關(guān)應(yīng)用開發(fā)經(jīng)驗。
書籍目錄
第一部分 Hadoop——一種分布式編程框架
第1章 Hadoop簡介
1.1 為什么寫《Hadoop 實戰(zhàn)》
1.2 什么是Hadoop
1.3 了解分布式系統(tǒng)和Hadoop
1.4 比較SQL 數(shù)據(jù)庫和Hadoop
1.5 理解MapReduce
1.5.1 動手?jǐn)U展一個簡單程序
1.5.2 相同程序在MapReduce中的擴(kuò)展
1.6 用Hadoop統(tǒng)計單詞——運行第一個程序
1.7 Hadoop歷史
1.8 小結(jié)
1.9 資源
第2章 初識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 定義一個公共賬號
2.2.2 驗證SSH安裝
2.2.3 生成SSH密鑰對
2.2.4 將公鑰分布并登錄驗證
2.3 運行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類的單詞計數(shù)
3.3 讀和寫
3.3.1 InputFormat
3.3.2 OutputFormat
3.4 小結(jié)
第二部分 實戰(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 計數(shù)
4.4 適應(yīng)Hadoop API 的改變
4.5 Hadoop 的Streaming
4.5.1 通過Unix命令使用Streaming
4.5.2 通過腳本使用Streaming
4.5.3 用Streaming處理鍵/值對
4.5.4 通過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é)不同來源的數(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è)過濾后在reduce側(cè)聯(lián)結(jié)
5.3 創(chuàng)建一個Bloom filter
5.3.1 Bloom filter做了什么
5.3.2 實現(xiàn)一個Bloom filter
5.3.3 Hadoop 0.20 以上版本的Bloom filter
5.4 溫故知新
5.5 小結(jié)
5.6 更多資源
第6章 編程實踐
6.1 開發(fā)MapReduce 程序
6.1.1 本地模式
6.1.2 偽分布模式
6.2 生產(chǎn)集群上的監(jiān)視和調(diào)試
6.2.1 計數(shù)器
6.2.2 跳過壞記錄
6.2.3 用IsolationRunner重新運行出錯的任務(wù)
6.3 性能調(diào)優(yōu)
6.3.1 通過combiner來減少網(wǎng)絡(luò)流量
6.3.2 減少輸入數(shù)據(jù)量
6.3.3 使用壓縮
6.3.4 重用JVM
6.3.5 根據(jù)猜測執(zhí)行來運行
6.3.6 代碼重構(gòu)與算法重寫
6.4 小結(jié)
第7章 細(xì)則手冊
7.1 向任務(wù)傳遞作業(yè)定制的參數(shù)
7.2 探查任務(wù)特定信息
7.3 劃分為多個輸出文件
7.4 以數(shù)據(jù)庫作為輸入輸出
7.5 保持輸出的順序
7.6 小結(jié)
第8章 管理Hadoop
8.1 為實際應(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è)計
8.11 多用戶作業(yè)的調(diào)度
8.11.1 多個JobTracker
8.11.2 公平調(diào)度器
8.12 小結(jié)
第三部分 Hadoop也瘋狂
第9章 在云上運行Hadoop
9.1 Amazon Web Services 簡介
9.2 安裝AWS
9.2.1 獲得AWS身份認(rèn)證憑據(jù)
9.2.2 獲得命令行工具
9.2.3 準(zhǔn)備SSH密鑰對
9.3 在EC2 上安裝Hadoop
9.3.1 配置安全參數(shù)
9.3.2 配置集群類型
9.4 在EC2 上運行MapReduce 程序
9.4.1 將代碼轉(zhuǎn)移到Hadoop集群上
9.4.2 訪問Hadoop集群上的數(shù)據(jù)
9.5 清空和關(guān)閉EC2 實例
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ù)流語言
10.1.2 數(shù)據(jù)類型
10.1.3 用戶定義函數(shù)
10.2 安裝Pig
10.3 運行Pig
10.4 通過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)系型運算符
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 實戰(zhàn)——計算相似專利的例子
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)換《紐約時報》1100 萬個庫存圖片文檔
12.2 挖掘中國移動的數(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 項目
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)頁:插圖:通常情況下,擴(kuò)展數(shù)據(jù)庫涉及增加讀操作的從節(jié)點以及系統(tǒng)的緩存。只有當(dāng)你的應(yīng)用程序讀多寫少時,增加讀操作的從節(jié)點才有作用。如果你的數(shù)據(jù)集更改并不頻繁,緩存才有作用。即便如此,這些系統(tǒng)結(jié)構(gòu)的特征也總是會在應(yīng)用層增加巨大的復(fù)雜性。HBase駐留在集群上任何一個機(jī)器的每個區(qū)域上(每個都是區(qū)域服務(wù)器)。寫操作涉及托管該區(qū)域的區(qū)域服務(wù)器,而HBase的區(qū)域服務(wù)器(默認(rèn)情況下)寫入3個HDFS數(shù)據(jù)節(jié)點?;谝粋€大表和一個同樣大的集群,寫操作被分散到很多不同的機(jī)器上,從根本上避免了主/從數(shù)據(jù)存儲所具有的單機(jī)寫瓶頸問題。這個特征可以幫助你使用傳統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)成本的很小一部分來獲得擴(kuò)展。隨著大型硬件系統(tǒng)與其所提供的實際性能相比越來越昂貴,這是一個影響相當(dāng)深遠(yuǎn)而重要的能力。對于在StumbleUpon的大型工作負(fù)載,單從字面上就可能節(jié)省數(shù)百萬美元。還有一些問題在單機(jī)系統(tǒng)中根本無法得到解決!對于高度動態(tài)的數(shù)據(jù)集,我們經(jīng)常讀取剛剛寫入的內(nèi)容,這樣系統(tǒng)中的緩存,如memcached,可能無法提供很多幫助。HBase在寫緩沖區(qū)中保存最近寫入的數(shù)據(jù)。讀取的數(shù)據(jù)直接來自內(nèi)存。此操作可以完全避免使用緩存層。高度動態(tài)的數(shù)據(jù)集的一個例子是事件計數(shù)器。這是一個困難的問題,因為大多數(shù)高速解決方案往往是只有利用內(nèi)存才能滿足性能(比如memcached),但又無法滿足持久性??紤]HBase及其incrementColunnValue()調(diào)用。通過在磁盤中記錄日志并緩沖到寫緩沖區(qū),讀取可以直接來自寫緩沖區(qū),達(dá)到高性能和高持久性。StumbleUpon利用HBase的能力來對網(wǎng)站的每個事件進(jìn)行統(tǒng)計——單擊、點擊率、廣告送達(dá)等。此外,HBase為典型的分區(qū)方案提供了絕佳的選擇。大多數(shù)傳統(tǒng)的分區(qū)方法需要對鍵空間的先驗假設(shè)。當(dāng)散列函數(shù)分布不均勻時,或鍵的分布違背了分區(qū)的假設(shè)時,就會對性能造成嚴(yán)重的影響。
媒體關(guān)注與評論
“本書是初學(xué)者的指路明燈,是高級用戶的洞察力之源。” ——Philipp K Janert,Principal Value公司“為你全面闡釋Hadoop的內(nèi)容、成因和運行機(jī)理?!薄 狿aul Stusiak,F(xiàn)alcon技術(shù)公司“將Hadoop闡釋清楚的最佳圖書l” ——Rick Wagner,Acxiom公司“全面覆蓋Hadoop f他書無而本書有?!薄 狫ohn S Griffin, Overstock.com“本書是對Hadoop和MapReduce的極佳介紹。,” ——Kenneth DeLong,BabyCenter公司
編輯推薦
《Hadoop實戰(zhàn)》縱情享受海量數(shù)據(jù)之美、揭開云計算的神秘面紗、深入分析,追本溯源。ApacheHadoop是一個NoSQL應(yīng)用程序框架,在分布式集群中運行,它適合于處理大數(shù)據(jù)集。如果需要從數(shù)據(jù)中分析信息,那么Hadoop是你的最佳選擇?!禜adoop實戰(zhàn)》是一本深受讀者好評的專著,旨在教會你如何以MapReduce方式編寫程序,其中包含MapReduce編程中的最佳實踐及設(shè)計模式。書中內(nèi)容由淺入深,以幾個簡單的例子開始,繼而轉(zhuǎn)向Hadoop在較為復(fù)雜的數(shù)據(jù)分析中的應(yīng)用.,此外,還介紹了StreamingAPI及Pig和Hive等工具。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載