第一部分 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.2.9 search-hadoop.com 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
· · · · · · (
收起)