出版信息
ISBN:9787115264480
定價:59.00元
作者:[美]Chuck Lam 著
譯者:韓冀中
出版社:人民郵電出版社
出版時間:2011年10月
版次:1.1
開本:16開
裝幀:平裝
字數:417千字
頁數:253頁
內容簡介
作為雲計算所青睞的分散式架構,Hadoop是一個用Java語言實現的軟體框架,在由大量計算機組成的集群中運行海量數據的分散式計算,是谷歌實現雲計算的重要基石。《Hadoop實戰》分為3個部分,深入淺出地介紹了Hadoop框架、編寫和運行Hadoop數據處理程式所需的實踐技能及Hadoop之外更大的生態系統。 《Hadoop實戰》適合需要處理大量離線數據的雲計算程式設計師、架構師和項目經理閱讀參考。
目錄
第一部分 Hadoop——一種分散式編程框架
第1章 Hadoop簡介 2
1.1 為什麼寫《Hadoop 實戰》 3
1.2 什麼是Hadoop 3
1.3 了解分散式系統和Hadoop 4
1.4 比較SQL資料庫和Hadoop 5
1.5 理解MapReduce 6
1.5.1 動手擴展一個簡單程式 7
1.5.2 相同程式在MapReduce中的擴展 9
1.6 用Hadoop統計單詞——運行第一個程式 11
1.7 Hadoop歷史 15
1.8 小結 16
1.9 資源 16
第2章 初識Hadoop 17
2.1 Hadoop的構造模組 17
2.1.1 NameNode 17
2.1.2 DataNode 18
2.1.3 Secondary NameNode 19
2.1.4 JobTracker 19
2.1.5 TaskTracker 19
2.2 為Hadoop集群安裝SSH 21
2.2.1 定義一個公共賬號 21
2.2.2 驗證SSH安裝 21
2.2.3 生成SSH密鑰對 21
2.2.4 將公鑰分布並登錄驗證 22
2.3 運行Hadoop 22
2.3.1 本地(單機)模式 23
2.3.2 偽分布模式 24
2.3.3 全分布模式 25
2.4 基於Web的集群用戶界面 28
2.5 小結 30
第3章 Hadoop組件 31
3.1 hdfs檔案操作 31
3.1.1 基本檔案命令 32
3.1.2 編程讀寫HDFS 35
3.2 剖析MapReduce程式 37
3.2.1 Hadoop數據類型 39
3.2.2 Mapper 40
3.2.3 Reducer 41
3.2.4 Partitioner:重定向Mapper輸出 41
3.2.5 Combiner:本地reduce 43
3.2.6 預定義mapper和Reducer類的單詞計數 43
3.3 讀和寫 43
3.3.1 InputFormat 44
3.3.2 OutputFormat 49
3.4 小結 50
第二部分 實戰
第4章 編寫MapReduce基礎程式 52
4.1 獲得專利數據集 52
4.1.1 專利引用數據 53
4.1.2 專利描述數據 54
4.2 構建MapReduce程式的基礎模板 55
4.3 計數 60
4.4 適應Hadoop API的改變 64
4.5 Hadoop的Streaming 67
4.5.1 通過Unix命令使用Streaming 68
4.5.2 通過腳本使用Streaming 69
4.5.3 用Streaming處理鍵/值對 72
4.5.4 通過Aggregate包使用Streaming 75
4.6 使用combiner提升性能 80
4.7 溫故知新 83
4.8 小結 84
4.9 更多資源 84
第5章 高階MapReduce 85
5.1 連結MapReduce作業 85
5.1.1 順序連結MapReduce作業 85
5.1.2 具有複雜依賴的MapReduce連結 86
5.1.3 預處理和後處理階段的連結 86
5.2 聯結不同來源的數據 89
5.2.1 Reduce側的聯結 90
5.2.2 基於DistributedCache的複製聯結 98
5.2.3 半聯結:map側過濾後在reduce側聯結 101
5.3 創建一個Bloom filter 102
5.3.1 Bloom filter做了什麼 102
5.3.2 實現一個Bloom filter 104
5.3.3 Hadoop 0.20以上版本的Bloom filter 110
5.4 溫故知新 110
5.5 小結 111
5.6 更多資源 112
第6章 編程實踐 113
6.1 開發MapReduce程式 113
6.1.1 本地模式 114
6.1.2 偽分布模式 118
6.2 生產集群上的監視和調試 123
6.2.1 計數器 123
6.2.2 跳過壞記錄 125
6.2.3 用IsolationRunner重新運行出錯的任務 128
6.3 性能調優 129
6.3.1 通過combiner來減少網路流量 129
6.3.2 減少輸入數據量 129
6.3.3 使用壓縮 129
6.3.4 重用JVM 132
6.3.5 根據猜測執行來運行 132
6.3.6 代碼重構與算法重寫 133
6.4 小結 134
第7章 細則手冊 135
7.1 向任務傳遞作業定製的參數 135
7.2 探查任務特定信息 137
7.3 劃分為多個輸出檔案 138
7.4 以資料庫作為輸入輸出 143
7.5 保持輸出的順序 145
7.6 小結 146
第8章 管理Hadoop 147
8.1 為實際套用設定特定參數值 147
8.2 系統體檢 149
8.3 許可權設定 151
8.4 配額管理 151
8.5 啟用資源回收筒 152
8.6 刪減DataNode 152
8.7 增加DataNode 153
8.8 管理NameNode和SNN 153
8.9 恢復失效的NameNode 155
8.10 感知網路布局和機架的設計 156
8.11 多用戶作業的調度 157
8.11.1 多個JobTracker 158
8.11.2 公平調度器 158
8.12 小結 160
第三部分 Hadoop也瘋狂
第9章 在雲上運行Hadoop 162
9.1 Amazon Web Services簡介 162
9.2 安裝AWS 163
9.2.1 獲得AWS身份認證憑據 164
9.2.2 獲得命令行工具 166
9.2.3 準備SSH密鑰對 168
9.3 在EC2上安裝Hadoop 169
9.3.1 配置安全參數 169
9.3.2 配置集群類型 169
9.4 在EC2上運行MapReduce程式 171
9.4.1 將代碼轉移到Hadoop集群上 171
9.4.2 訪問Hadoop集群上的數據 172
9.5 清空和關閉EC2實例 175
9.6 Amazon Elastic MapReduce和其他AWS服務 176
9.6.1 Amazon Elastic MapReduce 176
9.6.2 AWS導入/導出 177
9.7 小結 177
第10章 用Pig編程 178
10.1 像Pig一樣思考 178
10.1.1 數據流語言 179
10.1.2 數據類型 179
10.1.3 用戶定義函式 179
10.2 安裝Pig 179
10.3 運行Pig 180
10.4 通過Grunt學習Pig Latin 182
10.5 談談Pig Latin 186
10.5.1 數據類型和schema 186
10.5.2 表達式和函式 187
10.5.3 關係型運算符 189
10.5.4 執行最佳化 196
10.6 用戶定義函式 196
10.6.1 使用UDF 196
10.6.2 編寫UDF 197
10.7 腳本 199
10.7.1 注釋 199
10.7.2 參數替換 200
10.7.3 多查詢執行 201
10.8 Pig實戰——計算相似專利的例子 201
10.9 小結 206
第11章 hive及Hadoop群 207
11.1 Hive 207
11.1.1 安裝與配置Hive 208
11.1.2 查詢的示例 210
11.1.3 深入HiveQL 213
11.1.4 Hive小結 221
11.2 其他Hadoop相關的部分 221
11.2.1 HBase 221
11.2.2 zookeeper 221
11.2.3 Cascading 221
11.2.4 Cloudera 222
11.2.5 Katta 222
11.2.6 CloudBase 222
11.2.7 Aster Data和Greenplum 222
11.2.8 Hama和mahout 223
11.3 小結 223
第12章 案例研究 224
12.1 轉換《紐約時報》1100萬個庫存圖片文檔 224
12.2 挖掘中國移動的數據 225
12.3 在stumbleupon推薦最佳網站 229
12.3.1 分散式StumbleUpon的開端 230
12.3.2 HBase和StumbleUpon 230
12.3.3 StumbleUpon上的更多Hadoop套用 236
12.4 搭建面向企業查詢的分析系統——IBM的ES2項目 238
12.4.1 ES2系統結構 240
12.4.2 ES2爬蟲 241
12.4.3 ES2分析 242
12.4.4 小結 249
12.4.5 參考文獻 250
附錄A HDFS檔案命令 251