編輯推薦
Hadoop是目前受關注的大數據處理平颱和解決方案,並且已經廣泛應用於生産環境。本書基於新的Hadoop(CDH5,Apache Hadoop 2.6)版本介紹Hadoop技術的相關知識,不但詳細介紹瞭Hadoop、HDFS、YARN、MapReduce、Hive、Sqoop和HBase等,還深入探討瞭Hadoop、HBase的運維和性能調優,並包含瞭一個具有代錶性的完整的基於Hadoop的商業智能係統的設計和實現。
本書的大特點是麵嚮實踐。基礎篇介紹Hadoop及相關組件的同時,包含瞭大量動手實例,而應用篇包含的基於Hadoop的完整實例脫胎於生産環境的真實項目。在應用篇中,讀者不僅能夠通過項目實戰鞏固基礎篇的學習效果,還能學習商業智能係統的開發過程。
本書由淺至深,從理論基礎到項目實戰,適閤Hadoop的初學者閱讀,也可以作為高等院校相關課程的教學參考書。
本書主要內容
? 包含瞭Hadoop新版本的幾乎所有主要特性,是Hadoop目前成熟的形態。
? 深入介紹瞭NoSQL架構模式、HBase的架構和實現,以及HBase的高級特性。
? 深入介紹瞭統一資源管理和調度平颱的範型和YARN實現。
? 深入介紹瞭Hadoop、HBase性能調優,滿足海量數據處理的需求。
? 包含瞭一個完整的項目實戰,從需求定義、係統設計和架構後到代碼實現。
? 包含瞭一個機器學習算法應用實戰,利用Hadoop進行大數據挖掘,從數據中尋找模式。
內容簡介
本書介紹瞭Hadoop技術的相關知識,並將理論知識與實際項目相結閤。全書共分為三個部分:基礎篇、應用篇和總結篇。基礎篇詳細介紹瞭Hadoop、YARN、MapReduce、HDFS、Hive、Sqoop和HBase,並深入探討瞭Hadoop的運維和調優;應用篇則包含瞭一個具有代錶性的完整的基於Hadoop的商業智能係統的設計和實現;結束篇對全書進行總結,並對技術發展做瞭展望。
作者簡介
範東來,北京航空航天大學碩士,技術圖書作者和譯者,著有《Hadoop海量數據處理》(該書颱灣繁體字版為《Hadoop:BigData技術詳解與專案實作》),譯有《解讀NoSQL》。BBD(數聯銘品)大數據技術部負責人,大數據平颱架構師,極客學院布道師。研究方嚮:並行圖挖掘、去中心化應用。
目錄
目錄
基礎篇: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
應用篇:商業智能係統項目實戰
第10章 在綫圖書銷售商業智能係統 238
10.1 項目背景 238
10.2 功能需求 239
10.3 非功能需求 240
10.4 小結 240
第11章 係統結構設計 241
11.1 係統架構 241
11.2 功能設計 242
11.3 數據倉庫結構 243
11.4 係統網絡拓撲與硬件選型 246
11.4.1 係統網絡拓撲 246
11.4.2 係統硬件選型 248
11.5 技術選型 249
11.5.1 平颱選型 249
11.5.2 係統開發語言選型 249
11.6 小結 249
第12章 在開發之前 250
12.1 新建一個工程 250
12.1.1 安裝Python 250
12.1.2 安裝PyDev插件 251
12.1.3 新建PyDev項目 252
12.2 代碼目錄結構 253
12.3 項目的環境變量 253
12.4 如何調試 254
12.5 小結 254
第13章 實現數據導入導齣模塊 255
13.1 處理流程 255
13.2 導入方式 256
13.2.1 全量導入 256
13.2.2 增量導入 256
13.3 讀取配置文件 257
13.4 SqoopUtil 261
13.5 整閤 262
13.6 導入說明 262
13.7 導齣模塊 263
13.8 小結 265
第14章 實現數據分析工具模塊 266
14.1 處理流程 266
14.2 讀取配置文件 266
14.3 HiveUtil 268
14.4 整閤 268
14.5 數據分析和報錶 269
14.5.1 OLAP和Hive 269
14.5.2 OLAP和多維模型 270
14.5.3 選MySQL還是選HBase 272
14.6 小結 273
第15章 實現業務數據的數據清洗
模塊 274
15.1 ETL 274
15.1.1 數據抽取 274
15.1.2 數據轉換 274
15.1.3 數據清洗工具 275
15.2 處理流程 275
15.3 數據去重 276
15.3.1 産生原因 276
15.3.2 去重方法 277
15.3.3 一個很有用的UDF:
RowNum 277
15.3.4 第二種去重方法 279
15.3.5 進行去重 279
15.4 小結 282
第16章 實現點擊流日誌的數據清洗
模塊 283
16.1 數據倉庫和Web 283
16.2 處理流程 285
16.3 字段的獲取 285
16.4 編寫MapReduce作業 288
16.4.1 編寫IP地址解析器 288
16.4.2 編寫Mapper類 291
16.4.3 編寫Partitioner類 295
16.4.4 編寫SortComparator類 295
16.4.5 編寫Reducer類 297
16.4.6 編寫main函數 298
16.4.7 通過Python調用jar文件 299
16.5 還能做什麼 300
16.5.1 網站分析的指標 300
16.5.2 網站分析的決策支持 301
16.6 小結 301
第17章 實現購書轉化率分析模塊 302
17.1 漏鬥模型 302
Hadoop海量數據處理 技術詳解與項目實戰(第2版) epub pdf mobi txt 電子書 下載 2024
Hadoop海量數據處理 技術詳解與項目實戰(第2版) 下載 epub mobi pdf txt 電子書