Hadoop海量數據處理技術詳解與項目實戰(第2版)

基本簡介,圖書目錄,

基本簡介

本書介紹了Hadoop技術的相關知識,並將理論知識與實際項目相結合。全書共分為三個部分:基礎篇、套用篇和總結篇。基礎篇詳細介紹了Hadoop、YARN、MapReduce、HDFS、Hive、Sqoop和HBase,並深入探討了Hadoop的運維和調優;套用篇則包含了一個具有代表性的完整的基於Hadoop的商業智慧型系統的設計和實現;結束篇對全書進行總結,並對技術發展做了展望。

圖書目錄

基礎篇:Hadoop基礎
第1章 緒論 2
1.1 Hadoop和雲計算 2
1.1.1 Hadoop的電梯演講 2
1.1.2 Hadoop生態圈 3
1.1.3 雲計算的定義 6
1.1.4 雲計算的類型 7
1.1.5 Hadoop和雲計算 8
1.2 Hadoop和大數據 9
1.2.1 大數據的定義 9
1.2.2 大數據的結構類型 10
1.2.3 大數據行業套用實例 12
1.2.4 Hadoop和大數據 13
1.2.5 其他大數據處理平台 14
1.3 數據挖掘和商業智慧型 15
1.3.1 數據挖掘的定義 15
1.3.2 數據倉庫 17
1.3.3 運算元據庫系統和數據倉庫系統的區別 18
1.3.4 為什麼需要分離的數據倉庫 19
1.3.5 商業智慧型 19
1.3.6 大數據時代的商業智慧型 20
1.4 小結 21
第2章 環境準備 22
2.1 Hadoop的發行版本選擇 22
2.1.1 Apache Hadoop 22
2.1.2 CDH 22
2.1.3 Hadoop的版本 23
2.1.4 如何選擇Hadoop的版本 25
2.2 Hadoop架構 26
2.2.1 Hadoop HDFS架構 27
2.2.2 YARN架構 28
2.2.3 Hadoop架構 28
2.3 安裝Hadoop 29
2.3.1 安裝運行環境 30
2.3.2 修改主機名和用戶名 36
2.3.3 配置靜態IP位址 36
2.3.4 配置SSH無密碼連線 37
2.3.5 安裝JDK 38
2.3.6 配置Hadoop 39
2.3.7 格式化HDFS 42
2.3.8 啟動Hadoop並驗證安裝 42
2.4 安裝Hive 43
2.4.1 安裝元資料庫 44
2.4.2 修改Hive配置檔案 44
2.4.3 驗證安裝 45
2.5 安裝HBase 46
2.5.1 解壓檔案並修改Zookeeper相關配置 46
2.5.2 配置節點 46
2.5.3 配置環境變數 47
2.5.4 啟動並驗證 47
2.6 安裝Sqoop 47
2.7 Cloudera Manager 48
2.8 小結 51
第3章 Hadoop的基石:HDFS 52
3.1 認識HDFS 52
3.1.1 HDFS的設計理念 54
3.1.2 HDFS的架構 54
3.1.3 HDFS容錯 58
3.2 HDFS讀取檔案和寫入檔案 58
3.2.1 塊的分布 59
3.2.2 數據讀取 60
3.2.3 寫入數據 61
3.2.4 數據完整性 62
3.3 如何訪問HDFS 63
3.3.1 命令行接口 63
3.3.2 Java API 66
3.3.3 其他常用的接口 75
3.3.4 Web UI 75
3.4 HDFS中的新特性 76
3.4.1 NameNode HA 76
3.4.2 NameNode Federation 78
3.4.3 HDFS Snapshots 79
3.5 小結 79
第4章 YARN:統一資源管理和調平台 80
4.1 YARN是什麼 80
4.2 統一資源管理和調度平台范型 81
4.2.1 集中式調度器 81
4.2.2 雙層調度器 81
4.2.3 狀態共享調度器 82
4.3 YARN的架構 82
4.3.1 ResourceManager 83
4.3.2 NodeManager 85
4.3.3 ApplicationMaster 87
4.3.4 YARN的資源表示模型Container 87
4.4 YARN的工作流程 88
4.5 YARN的調度器 89
4.5.1 YARN的資源管理機制 89
4.5.2 FIFO Scheduler 90
4.5.3 Capacity Scheduler 90
4.5.4 Fair Scheduler 91
4.6 YARN命令行 92
4.7 Apache Mesos 95
4.8 小結 96
第5章 分而治之的智慧:MapReduce 97
5.1 認識MapReduce 97
5.1.1 MapReduce的編程思想 98
5.1.2 MapReduce運行環境 100
5.1.3 MapReduce作業和任務 102
5.1.4 MapReduce的計算資源劃分 102
5.1.5 MapReduce的局限性 103
5.2 Hello Word Count 104
5.2.1 Word Count的設計思路 104
5.2.2 編寫Word Count 105
5.2.3 運行程式 107
5.2.4 還能更快嗎 109
5.3 MapReduce的過程 109
5.3.1 從輸入到輸出 109
5.3.2 input 110
5.3.3 map及中間結果的輸出 112
5.3.4 shuffle 113
5.3.5 reduce及最後結果的輸出 115
5.3.6 sort 115
5.3.7 作業的進度組成 116
5.4 MapReduce的工作機制 116
5.4.1 作業提交 117
5.4.2 作業初始化 118
5.4.3 任務分配 118
5.4.4 任務執行 118
5.4.5 任務完成 118
5.4.6 推測執行 119
5.4.7 MapReduce容錯 119
5.5 MapReduce編程 120
5.5.1 Writable類 120
5.5.2 編寫Writable類 123
5.5.3 編寫Mapper類 124
5.5.4 編寫Reducer類 125
5.5.5 控制shuffle 126
5.5.6 控制sort 128
5.5.7 編寫main函式 129
5.6 MapReduce編程實例:連線 130
5.6.1 設計思路 131
5.6.2 編寫Mapper類 131
5.6.3 編寫Reducer類 132
5.6.4 編寫main函式 133
5.7 MapReduce編程實例:二次排序 134
5.7.1 設計思路 134
5.7.2 編寫Mapper類 135
5.7.3 編寫Partitioner類 136
5.7.4 編寫SortComparator類 136
5.7.5 編寫Reducer類 137
5.7.6 編寫main函式 137
5.8 MapReduce編程實例:全排序 139
5.8.1 設計思路 139
5.8.2 編寫代碼 140
5.9 小結 141
第6章 SQL on Hadoop:Hive 142
6.1 認識Hive 142
6.1.1 從MapReduce到SQL 143
6.1.2 Hive架構 144
6.1.3 Hive與關係型資料庫的區別 146
6.1.4 Hive命令的使用 147
6.2 數據類型和存儲格式 149
6.2.1 基本數據類型 149
6.2.2 複雜數據類型 149
6.2.3 存儲格式 150
6.2.4 數據格式 151
6.3 HQL:數據定義 152
6.3.1 Hive中的資料庫 152
6.3.2 Hive中的表 154
6.3.3 創建表 154
6.3.4 管理表 156
6.3.5 外部表 156
6.3.6 分區表 156
6.3.7 刪除表 158
6.3.8 修改表 158
6.4 HQL:數據操作 159
6.4.1 裝載數據 159
6.4.2 通過查詢語句向表中插入數據 160
6.4.3 利用動態分區向表中插入數據 160
6.4.4 通過CTAS載入數據 161
6.4.5 導出數據 161
6.5 HQL:數據查詢 162
6.5.1 SELECT…FROM語句 162
6.5.2 WHERE語句 163
6.5.3 GROUP BY和HAVING語句 164
6.5.4 JOIN語句 164
6.5.5 ORDER BY和SORT BY語句 166
6.5.6 DISTRIBUTE BY和SORT BY語句 167
6.5.7 CLUSTER BY 167
6.5.8 分桶和抽樣 168
6.5.9 UNION ALL 168
6.6 Hive函式 168
6.6.1 標準函式 168
6.6.2 聚合函式 168
6.6.3 表生成函式 169
6.7 Hive用戶自定義函式 169
6.7.1 UDF 169
6.7.2 UDAF 170
6.7.3 UDTF 171
6.7.4 運行 173
6.8 小結 173
第7章 SQL to Hadoop : Sqoop 174
7.1 一個Sqoop示例 174
7.2 導入過程 176
7.3 導出過程 178
7.4 Sqoop的使用 179
7.4.1 codegen 180
7.4.2 create-hive-table 180
7.4.3 eval 181
7.4.4 export 181
7.4.5 help 182
7.4.6 import 182
7.4.7 import-all-tables 183
7.4.8 job 184
7.4.9 list-databases 184
7.4.10 list-tables 184
7.4.11 merge 184
7.4.12 metastore 185
7.4.13 version 186
7.5 小結 186
第8章 HBase:HadoopDatabase 187
8.1 酸和鹼:兩種資料庫事務方法論 187
8.1.1 ACID 188
8.1.2 BASE 188
8.2 CAP定理 188
8.3 NoSQL的架構模式 189
8.3.1 鍵值存儲 189
8.3.2 圖存儲 190
8.3.3 列族存儲 191
8.3.4 文檔存儲 192
8.4 HBase的架構模式 193
8.4.1 行鍵、列族、列和單元格 193
8.4.2 HMaster 194
8.4.3 Region和RegionServer 195
8.4.4 WAL 195
8.4.5 HFile 195
8.4.6 Zookeeper 197
8.4.7 HBase架構 197
8.5 HBase寫入和讀取數據 198
8.5.1 Region定位 198
8.5.2 HBase寫入數據 199
8.5.3 HBase讀取數據 199
8.6 HBase基礎API 200
8.6.1 創建表 201
8.6.2 插入 202
8.6.3 讀取 203
8.6.4 掃描 204
8.6.5 刪除單元格 206
8.6.6 刪除表 207
8.7 HBase高級API 207
8.7.1 過濾器 208
8.7.2 計數器 208
8.7.3 協處理器 209
8.8 小結 214
第9章 Hadoop性能調優和運維 215
9.1 Hadoop客戶端 215
9.2 Hadoop性能調優 216
9.2.1 選擇合適的硬體 216
9.2.2 作業系統調優 218
9.2.3 JVM調優 219
9.2.4 Hadoop參數調優 219
9.3 Hive性能調優 225
9.3.1 JOIN最佳化 226
9.3.2 Reducer的數量 226
9.3.3 列裁剪 226
9.3.4 分區裁剪 226
9.3.5 GROUP BY最佳化 226
9.3.6 合併小檔案 227
9.3.7 MULTI-GROUP BY和MULTI-INSERT 228
9.3.8 利用UNION ALL 特性 228
9.3.9 並行執行 228
9.3.10 全排序 228
9.3.11 Top N 229
9.4 HBase調優 229
9.4.1 通用調優 229
9.4.2 客戶端調優 230
9.4.3 寫調優 231
9.4.4 讀調優 231
9.4.5 表設計調優 232
9.5 Hadoop運維 232
9.5.1 集群節點動態擴容和卸載 233
9.5.2 利用SecondaryNameNode恢復NameNode 234
9.5.3 常見的運維技巧 234
9.5.4 常見的異常處理 235
9.6 小結 236

相關詞條

熱門詞條

聯絡我們