《大數據Hadoop 3.X分散式處理實戰》是2020年4月人民郵電出版社出版的圖書,作者是吳章勇、楊強。
基本介紹
- 中文名:大數據Hadoop 3.X分散式處理實戰
- 作者:吳章勇、楊強
- 出版社:人民郵電出版社
- 出版時間:2020年4月
- 頁數:370 頁
- 定價:79 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115524669
內容簡介,圖書目錄,
內容簡介
本書以實戰開發為原則,以Hadoop 3.X生態系統內的主要大數據工具整合套用及項目開發為主線,通過Hadoop大數據開發中常見的11個典型模組和3個完整項目案例,詳細介紹HDFS、MapReduce、HBase、Hive、Sqoop、Spark等主流大數據工具的整合使用。本書附帶資源包括本書核心內容的教學視頻,本書所涉及的原始碼、參考資料等。
全書共14章,分為3篇,涵蓋的主要內容有Hadoop及其生態組件偽分散式安裝和完全分散式安裝、分散式檔案系統HDFS、分散式計算框架MapReduce、NoSQL資料庫HBase、分散式數據倉庫Hive、數據轉換工具Sqoop、記憶體計算框架Spark、海量Web日誌分析系統、電商商品推薦系統、分散式垃圾訊息識別系統等。
本書內容豐富、案例典型、實用性強,適合各個層次希望學習大數據開發技術的人員閱讀,尤其適合有一定Java 基礎而要進行Hadoop套用開發的人員閱讀。
圖書目錄
第一篇 Hadoop技術 1
第1章 大數據與Hadoop概述 03
1.1 大數據概述 03
1.1.1 大數據的定義 03
1.1.2 大數據行業的發展 04
1.1.3 大數據的典型套用 04
1.2 Hadoop概述 06
1.2.1 Hadoop簡介 06
1.2.2 Hadoop生態子項目 07
1.2.3 Hadoop 3.X的新特性 09
1.3 小結 09
1.4 配套視頻 10
第2章 Hadoop偽分散式安裝 11
2.1 Hadoop偽分散式安裝前的準備 11
2.1.1 安裝VMware 11
2.1.2 安裝CentOS 7 12
2.1.3 配置CentOS 7:接受協定 15
2.1.4 配置CentOS 7:登錄系統 16
2.1.5 配置CentOS 7:設定IP 16
2.1.6 配置CentOS 7:修改主機名 17
2.1.7 配置CentOS 7:配置hosts檔案 18
2.1.8 配置CentOS 7:關閉防火牆 18
2.1.9 配置CentOS 7:禁用selinux 19
2.1.10 配置CentOS 7:設定SSH免密碼登錄 19
2.1.11 配置CentOS 7:重啟 20
2.2 Hadoop偽分散式安裝 21
2.2.1 安裝WinSCP 21
2.2.2 安裝PieTTY 22
2.2.3 安裝JDK 23
2.2.4 安裝Hadoop 24
2.3 Hadoop驗證 28
2.3.1 格式化 28
2.3.2 啟動Hadoop 29
2.3.3 查看Hadoop相關進程 29
2.3.4 瀏覽檔案 30
2.3.5 瀏覽器訪問 30
2.4 小結 31
2.5 配套視頻 31
第3章 Hadoop分散式檔案系統——HDFS 32
3.1 HDFS原理 32
3.1.1 HDFS的假設前提和設計目標 32
3.1.2 HDFS的組件 33
3.1.3 HDFS數據複製 36
3.1.4 HDFS健壯性 36
3.1.5 HDFS數據組織 38
3.2 HDFS Shell 39
3.2.1 Hadoop檔案操作命令 39
3.2.2 Hadoop系統管理命令 44
3.3 HDFS Java API 46
3.3.1 搭建Linux下Eclipse開發環境 46
3.3.2 為Eclipse安裝Hadoop外掛程式 47
3.3.3 HDFS Java API示例 49
3.4 小結 56
3.5 配套視頻 56
第4章 分散式計算框架MapReduce 57
4.1 MapReduce原理 57
4.1.1 MapReduce概述 57
4.1.2 MapReduce的主要功能 59
4.1.3 MapReduce的處理流程 59
4.2 MapReduce編程基礎 61
4.2.1 內置數據類型介紹 61
4.2.2 WordCount入門示例 63
4.2.3 MapReduce分區與自定義數據類型 67
4.3 MapReduce綜合實例——數據去重 71
4.3.1 實例描述 71
4.3.2 設計思路 72
4.3.3 程式代碼 73
4.3.4 運行結果 74
4.4 MapReduce綜合實例——數據排序 75
4.4.1 實例描述 75
4.4.2 設計思路 76
4.4.3 程式代碼 77
4.4.4 運行結果 79
4.5 MapReduce綜合實例——求學生平均成績 79
4.5.1 實例描述 79
4.5.2 設計思路 80
4.5.3 程式代碼 81
4.5.4 運行結果 83
4.6 MapReduce綜合實例——WordCount高級示例 84
4.7 小結 87
4.8 配套視頻 87
第二篇 Hadoop 生態系統的主要大數據工具整合套用 89
第5章 NoSQL資料庫HBase 91
5.1 HBase原理 91
5.1.1 HBase概述 91
5.1.2 HBase核心概念 92
5.1.3 HBase的關鍵流程 95
5.2 HBase偽分散式安裝 97
5.2.1 安裝HBase的前提條件 98
5.2.2 解壓並配置環境變數 98
5.2.3 配置HBase參數 99
5.2.4 驗證HBase 100
5.3 HBase Shell 103
5.3.1 HBase Shell常用命令 103
5.3.2 HBase Shell綜合示例 109
5.3.3 HBase Shell的全部命令 112
5.4 小結 114
5.5 配套視頻 114
第6章 HBase高級特性 115
6.1 HBase Java API 115
6.1.1 HBase Java API介紹 115
6.1.2 HBase Java API示例 120
6.2 HBase與MapReduce的整合 130
6.2.1 HBase與MapReduce的整合概述 130
6.2.2 HBase與MapReduce的整合示例 130
6.3 小結 134
6.4 配套視頻 134
第7章 分散式數據倉庫Hive 135
7.1 Hive概述 135
7.1.1 Hive的定義 135
7.1.2 Hive的設計特徵 136
7.1.3 Hive的體系結構 136
7.2 Hive偽分散式安裝 137
7.2.1 安裝Hive的前提條件 137
7.2.2 解壓並配置環境變數 138
7.2.3 安裝MySQL 139
7.2.4 配置Hive 143
7.2.5 驗證Hive 145
7.3 Hive QL的基礎功能 146
7.3.1 運算元據庫 146
7.3.2 創建表 147
7.3.3 數據準備 150
7.4 Hive QL的高級功能 153
7.4.1 select查詢 154
7.4.2 函式 154
7.4.3 統計函式 154
7.4.4 distinct去除重複值 155
7.4.5 limit限制返回記錄的條數 156
7.4.6 為列名取別名 156
7.4.7 case when then多路分支 156
7.4.8 like模糊查詢 157
7.4.9 group by分組統計 157
7.4.10 having過濾分組統計結果 157
7.4.11 inner join內聯接 158
7.4.12 left outer join和right outer join外聯接 159
7.4.13 full outer join外部聯接 159
7.4.14 order by排序 160
7.4.15 where查找 160
7.5 小結 161
7.6 配套視頻 162
第8章 Hive高級特性 163
8.1 Beeline 163
8.1.1 使用Beeline的前提條件 163
8.1.2 Beeline的基本操作 164
8.1.3 Beeline的參數選項與管理命令 166
8.2 Hive JDBC 167
8.2.1 運行Hive JDBC的前提條件 167
8.2.2 Hive JDBC基礎示例 167
8.2.3 Hive JDBC綜合示例 169
8.3 Hive函式 174
8.3.1 內置函式 174
8.3.2 自定義函式 175
8.4 Hive表的高級特性 181
8.4.1 外部表 181
8.4.2 分區表 182
8.5 小結 185
8.6 配套視頻 185
第9章 數據轉換工具Sqoop 186
9.1 Sqoop概述與安裝 186
9.1.1 Sqoop概述 186
9.1.2 Sqoop安裝 187
9.2 Sqoop導入數據 189
9.2.1 更改MySQL的root用戶密碼 189
9.2.2 準備數據 190
9.2.3 導入數據到HDFS 191
9.2.4 查看HDFS數據 192
9.2.5 導入數據到Hive 193
9.2.6 查看Hive數據 193
9.3 Sqoop導出數據 194
9.3.1 準備MySQL表 194
9.3.2 導出數據到MySQL 194
9.3.3 查看MySQL中的導出數據 195
9.4 深入理解Sqoop的導入與導出 196
9.5 小結 203
9.6 配套視頻 203
第10章 記憶體計算框架Spark 204
10.1 Spark入門 204
10.1.1 Spark概述 204
10.1.2 Spark偽分散式安裝 205
10.1.3 由Java到Scala 209
10.1.4 Spark的套用 212
10.1.5 Spark入門示例 217
10.2 Spark Streaming 220
10.2.1 Spark Streaming概述 220
10.2.2 Spark Streaming示例 221
10.3 Spark SQL 224
10.3.1 Spark SQL概述 224
10.3.2 spark-sql命令 225
10.3.3 使用Scala操作Spark SQL 227
10.4 小結 228
10.5 配套視頻 229
第11章 Hadoop及其常用組件集群安裝 230
11.1 Hadoop集群安裝 230
11.1.1 安裝並配置CentOS 230
11.1.2 安裝JDK 236
11.1.3 安裝Hadoop 237
11.1.4 遠程複製檔案 241
11.1.5 驗證Hadoop 242
11.2 HBase集群安裝 244
11.2.1 解壓並配置環境變數 244
11.2.2 配置HBase參數 245
11.2.3 遠程複製檔案 246
11.2.4 驗證HBase 247
11.3 Hive集群安裝 249
11.3.1 解壓並配置環境變數 249
11.3.2 安裝MySQL 250
11.3.3 配置Hive 252
11.3.4 驗證Hive 254
11.4 Spark集群安裝 254
11.4.1 安裝Scala 254
11.4.2 安裝Spark 254
11.4.3 配置Spark 255
11.4.4 遠程複製檔案 256
11.4.5 驗證Spark 257
11.5 小結 259
11.6 配套視頻 259
第三篇 實戰篇 261
第12章 海量Web日誌分析系統 263
12.1 案例介紹 263
12.1.1 分析Web日誌數據的目的 263
12.1.2 Web日誌分析的典型套用場景 265
12.1.3 日誌的不確定性 265
12.2 案例分析 266
12.2.1 日誌分析的KPI 267
12.2.2 案例系統結構 267
12.2.3 日誌分析方法 268
12.3 案例實現 273
12.3.1 定義日誌相關屬性欄位 273
12.3.2 數據合法標識(在分析時是否被過濾) 274
12.3.3 解析日誌 274
12.3.4 日誌合法性過濾 275
12.3.5 頁面訪問量統計的實現 276
12.3.6 頁面獨立IP訪問量統計的實現 278
12.3.7 用戶單位時間PV的統計實現 280
12.3.8 用戶訪問設備信息統計的實現 282
12.4 小結 283
12.5 配套視頻 283
第13章 電商商品推薦系統 284
13.1 案例介紹 284
13.1.1 推薦算法 284
13.1.2 案例的意義 285
13.1.3 案例需求 285
13.2 案例設計 286
13.2.1 協同過濾 286
13.2.2 基於用戶的協同過濾算法 289
13.2.3 基於物品的協同過濾算法 292
13.2.4 算法實現設計 295
13.2.5 推薦步驟與架構設計 298
13.3 案例實現 298
13.3.1 實現HDFS檔案操作工具 299
13.3.2 實現任務步驟1:匯總用戶對所有物品的評分信息 302
13.3.3 實現任務步驟2:獲取物品同現矩陣 305
13.3.4 實現任務步驟3:合併同現矩陣和評分矩陣 307
13.3.5 實現任務步驟4:計算推薦結果 310
13.3.6 實現統一的任務調度 316
13.4 小結 317
13.5 配套視頻 317
第14章 分散式垃圾訊息識別系統 318
14.1 案例介紹 318
14.1.1 案例內容 318
14.1.2 案例套用的主體結構 319
14.1.3 案例運行結果 321
14.2 RPC遠程方法調用的設計 322
14.2.1 Java EE的核心優勢:RMI 322
14.2.2 RMI的基本原理 324
14.2.3 自定義RPC組件分析 325
14.3 數據分析設計 328
14.3.1 垃圾訊息識別算法——樸素貝葉斯算法 328
14.3.2 進行分散式貝葉斯分類學習時的全局計數器 330
14.3.3 數據清洗分析結果存儲 332
14.4 案例實現 333
14.4.1 自定義的RPC組件服務端相關實現 333
14.4.2 自定義的RPC組件客戶端相關實現 342
14.4.3 業務伺服器實現 347
14.4.4 業務客戶端實現 367
14.5 小結 370
14.6 配套視頻 370