Hadoop海量數據處理
許政
相關主題
商品描述
"《Hadoop海量數據處理》從Hadoop的基礎知識講起,逐步深入Hadoop分佈式文件系統(HDFS)和MapReduce分佈式編程框架的核心技術,幫助讀者全面、系統、深入地理解Hadoop海量數據處理技術的精髓。本書在講解技術原理時穿插大量的典型示例,並詳解兩個典型項目實戰案例,幫助讀者提高實際項目開發水平。 《Hadoop海量數據處理》共15章,分為4篇。第1篇Hadoop基礎知識,包括大數據概述、Hadoop概述、Hadoop環境搭建與配置;第2篇Hadoop分佈式存儲技術,包括HDFS概述、HDFS基礎操作、HDFS的讀寫原理和工作機制、Hadoop 3.x的新特性;第3篇MapReduce分佈式編程框架,包括MapReduce概述、MapReduce開發基礎、MapReduce框架的原理、MapReduce數據壓縮、YARN資源調度器、Hadoop企業級優化;第4篇項目實戰,包括Hadoop高可用集群搭建實戰和統計TopN經典項目案例實戰。 《Hadoop海量數據處理》通俗易懂、案例豐富、實用性強,適合Hadoop初學者和進階人員閱讀,也適合大數據工程師、數據分析工程師和數據科學家等大數據技術從業人員和愛好者閱讀,還適合作為高等院校和相關培訓機構的大數據教材。"
目錄大綱
目錄
第1篇 Hadoop基礎知識
第1章 大數據概述 2
1.1 大數據簡介 2
1.2 大數據的特點 2
1.3 大數據的發展前景 3
1.4 大數據技術生態體系 4
1.4.1 數據採集與傳輸類 4
1.4.2 數據存儲與管理類 5
1.4.3 資源管理類 5
1.4.4 數據計算類 5
1.4.5 任務調度類 6
1.5 大數據部門的組織架構 6
1.6 小結 7
第2章 Hadoop概述 8
2.1 Hadoop簡介 8
2.2 Hadoop的發展歷史 8
2.3 Hadoop的三大發行版本 9
2.4 Hadoop的優勢 10
2.5 Hadoop各版本之間的區別 10
2.6 Hadoop的組成 11
2.6.1 HDFS架構簡介 11
2.6.2 YARN架構簡介 12
2.6.3 MapReduce架構簡介 13
2.7 小結 14
第3章 Hadoop環境搭建與配置 15
3.1 搭建開發環境 15
3.1.1 對操作系統的要求 15
3.1.2 對軟件環境的要求 17
3.1.3 下載和安裝JDK 18
3.1.4 配置JDK環境變量 19
3.1.5 下載和安裝Hadoop 19
3.1.6 配置Hadoop的環境變量 19
3.1.7 配置Hadoop的系統參數 20
3.1.8 解讀Hadoop的目錄結構 21
3.2 配置本地運行模式 22
3.2.1 在Linux環境下運行Hadoop官方的Grep案例 22
3.2.2 在Linux環境下運行Hadoop官方的WordCount案例 23
3.2.3 在Windows環境下搭建Hadoop 23
3.2.4 在Windows環境下運行WordCount案例 25
3.3 配置偽分佈式模式 26
3.3.1 啟動HDFS並運行MapReduce程序 26
3.3.2 啟動YARN並運行MapReduce程序 31
3.3.3 配置歷史服務器 35
3.3.4 配置日誌的聚集功能 36
3.4 配置完全分佈式模式 38
3.4.1 分佈式集群環境準備 39
3.4.2 配置完全分佈式集群 42
3.4.3 配置Hadoop集群單點啟動 46
3.4.4 測試完全分佈式集群 47
3.4.5 配置Hadoop集群整體啟動 48
3.4.6 配置Hadoop集群時間同步 50
3.5 小結 52
第2篇 Hadoop分佈式存儲技術
第4章 HDFS概述 54
4.1 HDFS的背景和定義 54
4.1.1 HDFS產生的背景 54
4.1.2 HDFS的定義 54
4.2 HDFS的優缺點 55
4.2.1 HDFS的優點 55
4.2.2 HDFS的缺點 56
4.3 HDFS的組成架構 56
4.4 設置HDFS文件塊的大小 58
4.5 小結 59
第5章 HDFS基礎操作 60
5.1 HDFS的Shell命令操作 60
5.1.1 HDFS的幫助命令 60
5.1.2 顯示HDFS的目錄信息 62
5.1.3 創建HDFS目錄 62
5.1.4 將本地文件復制到HDFS中 62
5.1.5 將HDFS中的文件復制到本地文件系統中 63
5.1.6 輸出HDFS文件內容 63
5.1.7 追加HDFS文件內容 64
5.1.8 修改HDFS文件操作權限 65
5.1.9 將本地文件移動至HDFS中 65
5.1.10 復制HDFS文件 66
5.1.11 移動HDFS文件 66
5.1.12 上傳HDFS文件 67
5.1.13 下載HDFS文件 67
5.1.14 刪除文件或目錄 67
5.1.15 批量下載HDFS文件 68
5.1.16 顯示文件的末尾 68
5.1.17 統計目錄的大小 69
5.1.18 設置HDFS中的文件副本數量 69
5.2 HDFS的API調用操作 69
5.2.1 準備開發環境 69
5.2.2 通過API創建目錄 72
5.2.3 通過API上傳文件 73
5.2.4 通過API下載文件 73
5.2.5 通過API刪除目錄 74
5.2.6 通過API修改文件名稱 74
5.2.7 通過API查看文件詳情 75
5.2.8 通過API判斷文件和目錄 76
5.2.9 通過I/O流上傳文件 77
5.2.10 通過I/O流下載文件 77
5.2.11 通過I/O流定位文件讀取位置 78
5.3 小結 79
第6章 HDFS的讀寫原理和工作機制 80
6.1 剖析HDFS的寫數據流程 80
6.1.1 剖析文件寫入流程 80
6.1.2 計算網絡拓撲節點的距離 82
6.1.3 機架感知 83
6.2 剖析HDFS的讀數據流程 83
6.3 剖析NameNode和SecondaryNameNode 的工作機制 85
6.3.1 解析NN和2NN的工作機制 85
6.3.2 解析FsImage和Edits文件 88
6.3.3 CheckPoint時間設置 94
6.3.4 NameNode故障處理 95
6.3.5 集群安全模式 97
6.3.6 NameNode多目錄配置 99
6.4 剖析DataNode 100
6.4.1 解析DataNode的工作機制 100
6.4.2 保證數據的完整性 101
6.4.3 設置掉線時限參數 102
6.4.4 服役新的數據節點 102
6.4.5 退役舊的數據節點 109
6.4.6 DataNode多目錄配置 111
6.5 小結 112
第7章 Hadoop 3.x的新特性 113
7.1 糾刪碼技術 113
7.1.1 探究糾刪碼技術原理 113
7.1.2 簡述糾刪碼模式佈局方案 113
7.1.3 解讀糾刪碼策略 114
7.1.4 查看糾刪碼 115
7.1.5 設置糾刪碼 115
7.2 復制HDFS集群間的數據 116
7.2.1 採用scp實現HDFS集群間的數據復制 116
7.2.2 採用distcp實現HDFS集群間的數據復制 116
7.3 解決海量小文件的存儲問題 116
7.3.1 HDFS存儲小文件的弊端 117
7.3.2 將海量小文件存儲為HAR文件 117
7.4 配置HDFS回收站 118
7.4.1 回收站的功能參數說明 118
7.4.2 解析回收站的工作機制 119
7.4.3 開啟回收站的功能 119
7.4.4 修改訪問回收站的用戶名稱 119
7.4.5 測試回收站的功能 120
7.4.6 恢復回收站中的數據 120
7.4.7 清空回收站 121
7.5 HDFS快照管理 121
7.6 小結 122
第3篇 MapReduce分佈式編程框架
第8章 MapReduce概述 124
8.1 MapReduce的定義 124
8.2 MapReduce的優缺點 124
8.2.1 MapReduce的優點 124
8.2.2 MapReduce的缺點 125
8.3 MapReduce的核心編程思想 126
8.3.1 深入理解核心思想 126
8.3.2 MapReduce進程解析 128
8.4 官方的WordCount源碼解析 128
8.5 小結 131
第9章 MapReduce開發基礎 132
9.1 Hadoop的序列化概述 132
9.1.1 序列化與反序列化的定義 132
9.1.2 進行序列化的原因 132
9.1.3 Hadoop序列化的特點 132
9.2 數據序列化的類型 132
9.2.1 基本類型 133
9.2.2 集合類型 133
9.2.3 用戶自定義類型 133
9.2.4 序列化類型案例實戰 134
9.3 如何開發MapReduce程序 143
9.3.1 MapReduce編程規範 143
9.3.2 WordCount案例實戰 144
9.4 小結 152
第10章 MapReduce框架的原理 153
10.1 InputFormat數據輸入解析 153
10.1.1 切片與MapTask的並行度決定機制 153
10.1.2 FileInputFormat的切片機制解析 154
10.1.3 CombineTextInputFormat的切片機制 155
10.1.4 CombineTextInputFormat案例實戰 157
10.1.5 歸納FileInputFormat的其他子類 165
10.1.6 KeyValueTextInputFormat案例實戰 167
10.1.7 NLineInputFormat案例實戰 175
10.1.8 自定義InputFormat案例實戰 184
10.2 解析MapReduce的工作流程 194
10.3 剖析Shuffle的工作機制 198
10.3.1 Shuffle機制簡介 198
10.3.2 Partition分區簡介 199
10.3.3 Partition分區案例實戰 199
10.3.4 WritableComparable排序簡介 210
10.3.5 WritableComparable全排序案例實戰 211
10.3.6 WritableComparable區內排序案例實戰 221
10.3.7 Combiner合並簡介 230
10.3.8 Combiner合並案例實戰 231
10.3.9 GroupingComparator分組簡介 238
10.3.10 GroupingComparator分組案例實戰 238
10.4 剖析MapTask的工作機制 247
10.5 剖析ReduceTask的工作機制 248
10.6 OutputFormat數據輸出類詳解 249
10.6.1 OutputFormat接口實現類簡介 250
10.6.2 自定義OutputFormat接口實現類案例實戰 250
10.7 Join的多種應用 258
10.7.1 Reduce Join案例實戰 258
10.7.2 Map Join案例實戰 267
10.8 小結 277
第11章 MapReduce數據壓縮 278
11.1 數據壓縮概述 278
11.2 MapReduce支持的壓縮編碼器 278
11.3 選擇壓縮方式 279
11.3.1 Gzip壓縮 280
11.3.2 Bzip2壓縮 280
11.3.3 LZO壓縮 280
11.3.4 Snappy壓縮 280
11.4 配置壓縮參數 281
11.5 壓縮實戰案例 281
11.5.1 實現數據流的壓縮和解壓縮 281
11.5.2 實現Map輸出端壓縮 285
11.5.3 實現Reduce輸出端壓縮 287
11.6 小結 290
第12章 YARN資源調度器 291
12.1 解析YARN的基本架構 291
12.2 剖析YARN的工作機制 292
12.3 作業提交全過程 295
12.4 資源調度器的分類 296
12.5 任務的推測執行 298
12.6 小結 299
第13章 Hadoop企業級優化 300
13.1 HDFS優化 300
13.2 MapReduce優化 301
13.2.1 剖析MapReduce程序運行慢的原因 301
13.2.2 MapReduce的優化方法 302
13.3 小結 304
第4篇 項目實戰
第14章 Hadoop高可用集群搭建實戰 306
14.1 HA高可用簡介 306
14.2 HDFS-HA的工作機制 307
14.2.1 HDFS-HA的工作要點 307
14.2.2 HDFS-HA的自動故障轉移工作機制 308
14.3 搭建HDFS-HA集群 310
14.3.1 準備集群環境 310
14.3.2 規劃集群節點 312
14.3.3 下載和安裝JDK 313
14.3.4 配置JDK環境變量 313
14.3.5 安裝ZooKeeper集群 314
14.3.6 配置ZooKeeper集群 314
14.3.7 啟動ZooKeeper集群 315
14.3.8 配置HDFS-HA集群 316
14.3.9 配置HDFS-HA自動故障轉移 319
14.4 搭建YARN-HA集群 320
14.4.1 YARN-HA集群的工作機制 320
14.4.2 配置YARN-HA集群 321
14.5 小結 323
第15章 統計TopN經典項目案例實戰 324
15.1 項目案例構建流程 324
15.1.1 創建輸入文件 324
15.1.2 搭建一個Maven工程 325
15.1.3 定義序列化對象 329
15.1.4 編寫Mapper文件 330
15.1.5 編寫Reducer文件 332
15.1.6 編寫Driver文件 333
15.1.7 打包Maven工程 334
15.1.8 啟動Hadoop集群 334
15.1.9 運行TopN程序 335
15.2 小結 336
Hadoop海量數據處理:技術原理與項目實踐
目錄
·VI·
·XI·