大數(shù)據Hadoop 3.X分布式處理實戰(zhàn)
定 價:79 元
- 作者:吳章勇,楊強 著
- 出版時間:2020/4/1
- ISBN:9787115524669
- 出 版 社:人民郵電出版社
- 中圖法分類:TP274
- 頁碼:370
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書以實戰(zhàn)開發(fā)為原則,以Hadoop 3.X生態(tài)系統(tǒng)內的主要大數(shù)據工具整合應用及項目開發(fā)為主線,通過Hadoop大數(shù)據開發(fā)中常見的11個典型模塊和3個完整項目案例,詳細介紹HDFS、MapReduce、HBase、Hive、Sqoop、Spark等主流大數(shù)據工具的整合使用。本書附帶資源包括本書核心內容的教學視頻,本書所涉及的源代碼、參考資料等。
全書共14章,分為3篇,涵蓋的主要內容有Hadoop及其生態(tài)組件偽分布式安裝和完全分布式安裝、分布式文件系統(tǒng)HDFS、分布式計算框架MapReduce、NoSQL數(shù)據庫HBase、分布式數(shù)據倉庫Hive、數(shù)據轉換工具Sqoop、內存計算框架Spark、海量Web日志分析系統(tǒng)、電商商品推薦系統(tǒng)、分布式垃圾消息識別系統(tǒng)等。
本書內容豐富、案例典型、實用性強,適合各個層次希望學習大數(shù)據開發(fā)技術的人員閱讀,尤其適合有一定Java 基礎而要進行Hadoop應用開發(fā)的人員閱讀。
1.版本新。本書采用Hadoop3,版本較新,幫助讀者學習前沿技術。
2.項目大。深度剖析日志分析、推薦系統(tǒng)、垃圾消息三大企業(yè)級項目實戰(zhàn)案例。讀者稍加改造,即可在生產環(huán)境中使用。
3.內容全。詳細介紹HDFS、MapReduce、HBase、Hive、Sqoop、Spark 等主流大數(shù)據工具。
4.資源多。贈送12小時視頻講解和全書配套范例源碼。
5.在線答疑。本書提供答疑球球群,在線答疑。群號:243363382。
吳章勇,現(xiàn)任中軟國際分公司技術總監(jiān),曾任阿里巴巴集團架構師,持有信息系統(tǒng)項目管理師高級證書;為培訓公司策劃大數(shù)據課程體系,主持開發(fā)過多個大數(shù)據項目,有15年以上開發(fā)和培訓經驗;錄制過《Hadoop大數(shù)據技術》等經典在線教育視頻課程。
楊強,現(xiàn)任中軟國際項目總監(jiān),中軟國際ETC CTO辦公室高級技術顧問,移動增值數(shù)據服務項目經理,擁有10年大型軟件項目開發(fā)及培訓經驗,對分布式及異構系統(tǒng)集成
有深入研究。參與主持多個大型項目并發(fā)表多篇重要論文。
目 錄
第一篇 Hadoop技術 1
第1章 大數(shù)據與Hadoop概述 03
1.1 大數(shù)據概述 03
1.1.1 大數(shù)據的定義 03
1.1.2 大數(shù)據行業(yè)的發(fā)展 04
1.1.3 大數(shù)據的典型應用 04
1.2 Hadoop概述 06
1.2.1 Hadoop簡介 06
1.2.2 Hadoop生態(tài)子項目 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:接受協(xié)議 15
2.1.4 配置CentOS 7:登錄系統(tǒng) 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分布式文件系統(tǒng)——HDFS 32
3.1 HDFS原理 32
3.1.1 HDFS的假設前提和設計目標 32
3.1.2 HDFS的組件 33
3.1.3 HDFS數(shù)據復制 36
3.1.4 HDFS健壯性 36
3.1.5 HDFS數(shù)據組織 38
3.2 HDFS Shell 39
3.2.1 Hadoop文件操作命令 39
3.2.2 Hadoop系統(tǒng)管理命令 44
3.3 HDFS Java API 46
3.3.1 搭建Linux下Eclipse開發(fā)環(huán)境 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 內置數(shù)據類型介紹 61
4.2.2 WordCount入門示例 63
4.2.3 MapReduce分區(qū)與自定義數(shù)據類型 67
4.3 MapReduce綜合實例——數(shù)據去重 71
4.3.1 實例描述 71
4.3.2 設計思路 72
4.3.3 程序代碼 73
4.3.4 運行結果 74
4.4 MapReduce綜合實例——數(shù)據排序 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 生態(tài)系統(tǒng)的主要大數(shù)據工具整合應用 89
第5章 NoSQL數(shù)據庫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 解壓并配置環(huán)境變量 98
5.2.3 配置HBase參數(shù) 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章 分布式數(shù)據倉庫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 解壓并配置環(huán)境變量 138
7.2.3 安裝MySQL 139
7.2.4 配置Hive 143
7.2.5 驗證Hive 145
7.3 Hive QL的基礎功能 146
7.3.1 操作數(shù)據庫 146
7.3.2 創(chuàng)建表 147
7.3.3 數(shù)據準備 150
7.4 Hive QL的高級功能 153
7.4.1 select查詢 154
7.4.2 函數(shù) 154
7.4.3 統(tǒng)計函數(shù) 154
7.4.4 distinct去除重復值 155
7.4.5 limit限制返回記錄的條數(shù) 156
7.4.6 為列名取別名 156
7.4.7 case when then多路分支 156
7.4.8 like模糊查詢 157
7.4.9 group by分組統(tǒng)計 157
7.4.10 having過濾分組統(tǒng)計結果 157
7.4.11 inner join內聯(lián)接 158
7.4.12 left outer join和right outer join外聯(lián)接 159
7.4.13 full outer join外部聯(lián)接 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的參數(shù)選項與管理命令 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函數(shù) 174
8.3.1 內置函數(shù) 174
8.3.2 自定義函數(shù) 175
8.4 Hive表的高級特性 181
8.4.1 外部表 181
8.4.2 分區(qū)表 182
8.5 小結 185
8.6 配套視頻 185
第9章 數(shù)據轉換工具Sqoop 186
9.1 Sqoop概述與安裝 186
9.1.1 Sqoop概述 186
9.1.2 Sqoop安裝 187
9.2 Sqoop導入數(shù)據 189
9.2.1 更改MySQL的root用戶密碼 189
9.2.2 準備數(shù)據 190
9.2.3 導入數(shù)據到HDFS 191
9.2.4 查看HDFS數(shù)據 192
9.2.5 導入數(shù)據到Hive 193
9.2.6 查看Hive數(shù)據 193
9.3 Sqoop導出數(shù)據 194
9.3.1 準備MySQL表 194
9.3.2 導出數(shù)據到MySQL 194
9.3.3 查看MySQL中的導出數(shù)據 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 解壓并配置環(huán)境變量 244
11.2.2 配置HBase參數(shù) 245
11.2.3 遠程復制文件 246
11.2.4 驗證HBase 247
11.3 Hive集群安裝 249
11.3.1 解壓并配置環(huán)境變量 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
第三篇 實戰(zhàn)篇 261
第12章 海量Web日志分析系統(tǒng) 263
12.1 案例介紹 263
12.1.1 分析Web日志數(shù)據的目的 263
12.1.2 Web日志分析的典型應用場景 265
12.1.3 日志的不確定性 265
12.2 案例分析 266
12.2.1 日志分析的KPI 267
12.2.2 案例系統(tǒng)結構 267
12.2.3 日志分析方法 268
12.3 案例實現(xiàn) 273
12.3.1 定義日志相關屬性字段 273
12.3.2 數(shù)據合法標識(在分析時是否被過濾) 274
12.3.3 解析日志 274
12.3.4 日志合法性過濾 275
12.3.5 頁面訪問量統(tǒng)計的實現(xiàn) 276
12.3.6 頁面獨立IP訪問量統(tǒng)計的實現(xiàn) 278
12.3.7 用戶單位時間PV的統(tǒng)計實現(xiàn) 280
12.3.8 用戶訪問設備信息統(tǒng)計的實現(xiàn) 282
12.4 小結 283
12.5 配套視頻 283
第13章 電商商品推薦系統(tǒng) 284
13.1 案例介紹 284
13.1.1 推薦算法 284
13.1.2 案例的意義 285
13.1.3 案例需求 285
13.2 案例設計 286
13.2.1 協(xié)同過濾 286
13.2.2 基于用戶的協(xié)同過濾算法 289
13.2.3 基于物品的協(xié)同過濾算法 292
13.2.4 算法實現(xiàn)設計 295
13.2.5 推薦步驟與架構設計 298
13.3 案例實現(xiàn) 298
13.3.1 實現(xiàn)HDFS文件操作工具 299
13.3.2 實現(xiàn)任務步驟1:匯總用戶對所有物品的評分信息 302
13.3.3 實現(xiàn)任務步驟2:獲取物品同現(xiàn)矩陣 305
13.3.4 實現(xiàn)任務步驟3:合并同現(xiàn)矩陣和評分矩陣 307
13.3.5 實現(xiàn)任務步驟4:計算推薦結果 310
13.3.6 實現(xiàn)統(tǒng)一的任務調度 316
13.4 小結 317
13.5 配套視頻 317
第14章 分布式垃圾消息識別系統(tǒng) 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的核心優(yōu)勢:RMI 322
14.2.2 RMI的基本原理 324
14.2.3 自定義RPC組件分析 325
14.3 數(shù)據分析設計 328
14.3.1 垃圾消息識別算法——樸素貝葉斯算法 328
14.3.2 進行分布式貝葉斯分類學習時的全局計數(shù)器 330
14.3.3 數(shù)據清洗分析結果存儲 332
14.4 案例實現(xiàn) 333
14.4.1 自定義的RPC組件服務端相關實現(xiàn) 333
14.4.2 自定義的RPC組件客戶端相關實現(xiàn) 342
14.4.3 業(yè)務服務器實現(xiàn) 347
14.4.4 業(yè)務客戶端實現(xiàn) 367
14.5 小結 370
14.6 配套視頻 370