Hadoop基礎教程

Hadoop基礎教程

《Hadoop基礎教程》包括三個主要部分:第1~5章講述了Hadoop的核心機制及Hadoop的工作模式;第6~7章涵蓋了Hadoop更多可操作的內容;第8~11章介紹了Hadoop與其他產品和技術的組合使用。《Hadoop基礎教程》目的在於幫助讀者了解什麼是Hadoop,Hadoop是如何工作的,以及如何使用Hadoop從數據中提取有價值的信息,並用它解決大數據問題。《Hadoop基礎教程》適用於有軟體開發經驗的技術人員。

基本介紹

  • 書名:Hadoop基礎教程
  • 作者:特金頓(Garry Turkington)
  • ISBN:9787115341334
  • 頁數:310頁
  • 定價:65元
  • 出版社:人民郵電出版社
  • 出版時間:2014-1
  • 裝幀:平裝
  • 開本:16
內容介紹,作者介紹,目錄,

內容介紹

《Hadoop基礎教程》包括三個主要部分:第1~5章講述了Hadoop的核心機制及Hadoop的工作模式;第6~7章涵蓋了Hadoop更多可操作的內容;第8~11章介紹了Hadoop與其他產品和技術的組合使用。《Hadoop基礎教程》目的在於幫助讀者了解什麼是Hadoop,Hadoop是如何工作的,以及如何使用Hadoop從數據中提取有價值的信息,並用它解決大數據問題。
《Hadoop基礎教程》適用於有軟體開發經驗的技術人員。

作者介紹

Garry Turkington
擁有14年行業經驗,其大部分時間都專注於大型分散式系統的設計與實現。目前,他在Improve Digital公司擔任數據工程部副總裁和公司的首席架構師。他主要負責實現可以存儲、處理並從公司海量數據中挖掘潛在價值的系統。在加入 Improve Digital公司之前,他曾在Amazon 英國公司領導著幾個軟體開發團隊,他們開發的系統用於處理Amazon為全世界所有對象創建的目錄數據。在此之前,他還曾在英國和美國政府機關任職十年。
他在北愛爾蘭的貝爾法斯特女王大學獲得了計算機學士和博士學位,並在美國斯蒂文斯理工學院獲得系統工程的工程碩士學位。

目錄

第1章 緒論 1
1.1 大數據處理 1
1.1.1 數據的價值 2
1.1.2 客群較少 2
1.1.3 一種不同的方法 4
1.1.4 Hadoop 7
1.2 基於Amazon Web Services的雲計算 12
1.2.1 雲太多了 12
1.2.2 第三種方法 12
1.2.3 不同類型的成本 12
1.2.4 AWS:Amazon的彈性架構 13
1.2.5 本書內容 14
1.3 小結 15
第2章 安裝並運行Hadoop 16
2.1 基於本地Ubuntu主機的Hadoop系統 16
2.2 實踐環節:檢查是否已安裝JDK 17
2.3 實踐環節:下載Hadoop 18
2.4 實踐環節:安裝SSH 19
2.5 實踐環節:使用Hadoop計算圓周率 20
2.6 實踐環節:配置偽分散式模式 22
2.7 實踐環節:修改HDFS的根目錄 24
2.8 實踐環節:格式化NameNode 25
2.9 實踐環節:啟動Hadoop 26
2.10 實踐環節:使用HDFS 27
2.11 實踐環節:MapReduce的經典入門程式——字數統計 28
2.12 使用彈性MapReduce 33
2.13 實踐環節:使用管理控制台在EMR運行WordCount 34
2.13.1 使用EMR的其他方式 41
2.13.2 AWS生態系統 42
2.14 本地Hadoop與EMR Hadoop的對比 42
2.15 小結 43
第3章 理解MapReduce 44
3.1 鍵值對 44
3.1.1 具體含義 44
3.1.2 為什麼採用鍵/值數據 45
3.1.3 MapReduce作為一系列鍵/值變換 46
3.2 MapReduce的Hadoop Java API 47
3.3 編寫MapReduce程式 50
3.4 實踐環節:設定classpath 50
3.5 實踐環節:實現WordCount 51
3.6 實踐環節:構建JAR檔案 53
3.7 實踐環節:在本地Hadoop集群運行WordCount 54
3.8 實踐環節:在EMR上運行WordCount 54
3.8.1 0.20之前版本的Java MapReduce API 56
3.8.2 Hadoop提供的mapper和reducer實現 57
3.9 實踐環節:WordCount的簡易方法 58
3.10 查看WordCount的運行全貌 59
3.10.1 啟動 59
3.10.2 將輸入分塊 59
3.10.3 任務分配 60
3.10.4 任務啟動 60
3.10.5 不斷監視JobTracker 60
3.10.6 mapper的輸入 61
3.10.7 mapper的執行 61
3.10.8 mapper的輸出和reducer的輸入 61
3.10.9 分塊 62
3.10.10 可選分塊函式 62
3.10.11 reducer類的輸入 62
3.10.12 reducer類的執行 63
3.10.13 reducer類的輸出 63
3.10.14 關機 63
3.10.15 這就是MapReduce的全部 64
3.10.16 也許缺了combiner 64
3.11 實踐環節:使用combiner編寫WordCount 64
3.12 實踐環節:更正使用combiner的WordCount 65
3.13 Hadoop專有數據類型 67
3.13.1 Writable和Writable-Comparable接口 67
3.13.2 wrapper類介紹 68
3.14 實踐環節:使用Writable包裝類 69
3.15 輸入/輸出 71
3.15.1 檔案、split和記錄 71
3.15.2 InputFormat和RecordReader 71
3.15.3 Hadoop提供的InputFormat 72
3.15.4 Hadoop提供的RecordReader 73
3.15.5 OutputFormat和Record-Writer 73
3.15.6 Hadoop提供的OutputFormat 73
3.15.7 別忘了Sequence files 74
3.16 小結 74
第4章 開發MapReduce程式 75
4.1 使用非Java語言操作Hadoop 75
4.1.1 Hadoop Streaming工作原理 76
4.1.2 使用Hadoop Streaming的原因 76
4.2 實踐環節:使用Streaming實現Word-Count 76
4.3 分析大數據集 79
4.3.1 獲取UFO目擊事件數據集 79
4.3.2 了解數據集 80
4.4 實踐環節:統計匯總UFO數據 80
4.5 實踐環節:統計形狀數據 82
4.6 實踐環節:找出目擊事件的持續時間與UFO形狀的關係 84
4.7 實踐環節:在命令行中執行形狀/時間分析 87
4.8 實踐環節:使用ChainMapper進行欄位驗證/分析 88
4.9 實踐環節:使用Distributed Cache改進地點輸出 93
4.10 計數器、狀態和其他輸出 96
4.11 實踐環節:創建計數器、任務狀態和寫入日誌 96
4.12 小結 102
第5章 高級MapReduce技術 103
5.1 初級、高級還是中級 103
5.2 多數據源聯結 103
5.2.1 不適合執行聯結操作的情況 104
5.2.2 map端聯結與reduce端聯結的對比 104
5.2.3 匹配賬戶與銷售信息 105
5.3 實踐環節:使用MultipleInputs實現reduce端聯結 105
5.3.1 實現map端聯結 109
5.3.2 是否進行聯結 112
5.4 圖算法 112
5.4.1 Graph 101 112
5.4.2 圖和MapReduce 112
5.4.3 圖的表示方法 113
5.5 實踐環節:圖的表示 114
5.6 實踐環節:創建原始碼 115
5.7 實踐環節:第一次運行作業 119
5.8 實踐環節:第二次運行作業 120
5.9 實踐環節:第三次運行作業 121
5.10 實踐環節:第四次也是最後一次運行作業 122
5.10.1 運行多個作業 124
5.10.2 關於圖的終極思考 124
5.11 使用語言無關的數據結構 124
5.11.1 候選技術 124
5.11.2 Avro簡介 125
5.12 實踐環節:獲取並安裝Avro 125
5.13 實踐環節:定義模式 126
5.14 實踐環節:使用Ruby創建Avro源數據 127
5.15 實踐環節:使用Java語言編程操作Avro數據 128
5.16 實踐環節:在MapReduce中統計UFO形狀 130
5.17 實踐環節:使用Ruby檢查輸出數據 134
5.18 實踐環節:使用Java檢查輸出數據 135
5.19 小結 137
第6章 故障處理 138
6.1 故障 138
6.1.1 擁抱故障 138
6.1.2 至少不怕出現故障 139
6.1.3 嚴禁模仿 139
6.1.4 故障類型 139
6.1.5 Hadoop節點故障 139
6.2 實踐環節:殺死DataNode進程 141
6.3 實踐環節:複製因子的作用 144
6.4 實踐環節:故意造成數據塊丟失 146
6.5 實踐環節:殺死TaskTracker進程 149
6.6 實踐環節:殺死JobTracker 153
6.7 實踐環節:殺死NameNode進程 154
6.8 實踐環節:引發任務故障 160
6.9 數據原因造成的任務故障 163
6.10 實踐環節:使用skip模式處理異常數據 164
6.11 小結 169
第7章 系統運行與維護 170
7.1 關於EMR的說明 170
7.2 Hadoop配置屬性 171
7.3 實踐環節:瀏覽默認屬性 171
7.3.1 附加的屬性元素 172
7.3.2 默認存儲位置 172
7.3.3 設定Hadoop屬性的幾種方式 173
7.4 集群設定 174
7.4.1 為集群配備多少台主機 174
7.4.2 特殊節點的需求 176
7.4.3 不同類型的存儲系統 177
7.4.4 Hadoop的網路配置 178
7.5 實踐環節:查看默認的機櫃配置 180
7.6 實踐環節:報告每台主機所在機櫃 180
7.7 集群訪問控制 183
7.8 實踐環節:展示Hadoop的默認安全機制 183
7.9 管理NameNode 187
7.10 實踐環節:為fsimage檔案新增一個存儲路徑 188
7.11 實踐環節:遷移到新的NameNode主機 190
7.12 管理HDFS 192
7.12.1 數據寫入位置 192
7.12.2 使用平衡器 193
7.13 MapReduce管理 193
7.13.1 通過命令行管理作業 193
7.13.2 作業優先權和作業調度 194
7.14 實踐環節:修改作業優先權並結束作業運行 194
7.15 擴展集群規模 197
7.15.1 提升本地Hadoop集群的計算能力 197
7.15.2 提升EMR作業流的計算能力 198
7.16 小結 198
第8章 Hive:數據的關係視圖 200
8.1 Hive概述 200
8.1.1 為什麼使用Hive 200
8.1.2 感謝Facebook 201
8.2 設定Hive 201
8.2.1 準備工作 201
8.2.2 下載Hive 202
8.3 實踐環節:安裝Hive 202
8.4 使用Hive 203
8.5 實踐環節:創建UFO數據表 204
8.6 實踐環節:在表中插入數據 206
8.7 實踐環節:驗證表 208
8.8 實踐環節:用正確的列分隔設定重定義表 210
8.9 實踐環節:基於現有檔案創建表 212
8.10 實踐環節:執行聯結操作 214
8.11 實踐環節:使用視圖 216
8.12 實踐環節:導出查詢結果 219
8.13 實踐環節:製作UFO目擊事件分區表 221
8.13.1 分桶、歸併和排序 224
8.13.2 用戶自定義函式 225
8.14 實踐環節:新增用戶自定義函式 225
8.14.1 是否進行預處理 228
8.14.2 Hive和Pig的對比 229
8.14.3 未提到的內容 229
8.15 基於Amazon Web Services的Hive 230
8.16 實踐環節:在EMR上分析UFO數據 230
8.16.1 在開發過程中使用互動式作業流 235
8.16.2 與其他AWS產品的集成 236
8.17 小結 236
第9章 與關係資料庫協同工作 238
9.1 常見數據路徑 238
9.1.1 Hadoop用於存儲檔案 238
9.1.2 使用Hadoop進行數據預處理 239
9.1.3 使用Hadoop作為數據輸入工具 239
9.1.4 數據循環 240
9.2 配置MySQL 240
9.3 實踐環節:安裝並設定MySQL 240
9.4 實踐環節:配置MySQL允許遠程連線 243
9.5 實踐環節:建立員工資料庫 245
9.6 把數據導入Hadoop 246
9.6.1 使用MySQL工具手工導入 246
9.6.2 在mapper中訪問資料庫 246
9.6.3 更好的方法:使用Sqoop 247
9.7 實踐環節:下載並配置Sqoop 247
9.8 實踐環節:把MySQL的數據導入HDFS 249
9.9 實踐環節:把MySQL數據導出到Hive 253
9.10 實踐環節:有選擇性的導入數據 255
9.11 實踐環節:使用數據類型映射 257
9.12 實踐環節:通過原始查詢導入數據 258
9.13 從Hadoop導出數據 261
9.13.1 在reducer中把數據寫入關係資料庫 261
9.13.2 利用reducer輸出SQL數據檔案 262
9.13.3 仍是最好的方法 262
9.14 實踐環節:把Hadoop數據導入MySQL 262
9.15 實踐環節:把Hive數據導入MySQL 265
9.16 實踐環節:改進mapper並重新運行數據導出命令 267
9.17 在AWS上使用Sqoop 269
9.18 小結 270
第10章 使用Flume收集數據 271
10.1 關於AWS的說明 271
10.2 無處不在的數據 271
10.2.1 數據類別 272
10.2.2 把網路流量導入Hadoop 272
10.3 實踐環節:把網路伺服器數據導入Hadoop 272
10.3.1 把檔案導入Hadoop 273
10.3.2 潛在的問題 273
10.4 Apache Flume簡介 274
10.5 實踐環節:安裝並配置Flume 275
10.6 實踐環節:把網路流量存入日誌檔案 277
10.7 實踐環節:把日誌輸出到控制台 279
10.8 實踐環節:把命令的執行結果寫入平面檔案 281
10.9 實踐環節:把遠程檔案數據寫入本地平面檔案 283
10.9.1 信源、信宿和信道 284
10.9.2 Flume配置檔案 286
10.9.3 一切都以事件為核心 287
10.10 實踐環節:把網路數據寫入HDFS 287
10.11 實踐環節:加入時間戳 289
10.12 實踐環節:多層Flume網路 292
10.13 實踐環節:把事件寫入多個信宿 294
10.13.1 選擇器的類型 295
10.13.2 信宿故障處理 295
10.13.3 使用簡單元件搭建複雜系統 296
10.14 更高的視角 297
10.14.1 數據的生命周期 297
10.14.2 集結數據 297
10.14.3 調度 297
10.15 小結 298
第11章 展望未來 299
11.1 全書回顧 299
11.2 即將到來的Hadoop變革 300
11.3 其他版本的Hadoop軟體包 300
11.4 其他Apache項目 303
11.4.1 HBase 303
11.4.2 Oozie 303
11.4.3 Whir 304
11.4.4 Mahout 304
11.4.5 MRUnit 305
11.5 其他程式設計模式 305
11.5.1 Pig 305
11.5.2 Cascading 305
11.6 AWS資源 306
11.6.1 在EMR上使用HBase 306
11.6.2 SimpleDB 306
11.6.3 DynamoDB 306
11.7 獲取信息的渠道 307
11.7.1 原始碼 307
11.7.2 郵件列表和論壇 307
11.7.3 LinkedIn群組 307
11.7.4 Hadoop用戶群 307
11.7.5 會議 308
11.8 小結 308
隨堂測驗答案 309

相關詞條

熱門詞條

聯絡我們