內容簡介
本書是
Hadoop +
Spark大數據分析技術入門書,基於Hadoop和Spark兩大框架體系的3.2版本,以通俗易懂的方式介紹Hadoop + Spark原生態組件的原理、集群搭建、實戰操作,以及整個Hadoop生態系統主流的大數據分析技術。 本書共分14章。第1章講解Hadoop框架及新版本特性,並詳細講解大數據分析環境的搭建工作,包括Linux作業系統的安裝、SSH工具使用和配置等;第2章講解Hadoop偽分散式的安裝和開發體驗,使讀者熟悉Hadoop大數據開發兩大核心組件,即HDFS和MapReduce;第3~12章講解Hadoop生態系統各框架HDFS、MapReduce、輸入輸出、Hadoop集群配置、高可用集群、HBase、Hive、數據實時處理系統Flume,以及Spark框架數據處理、機器學習等實戰技術,並通過實際案例加深對各個框架的理解與套用;
圖書目錄
第1章 大數據與Hadoop 1
1.1 什麼是大數據 1
1.2 大數據的來源 2
1.3 如何處理大數據 3
1.3.1 數據分析與挖掘 3
1.3.2 基於雲平台的分散式處理 4
1.4 Hadoop 3新特性 6
1.5 虛擬機與Linux作業系統的安裝 7
1.5.1 VirtualBox虛擬機的安裝 7
1.5.2 Linux作業系統的安裝 8
1.6 SSH工具與使用 14
1.7 Linux統一設定 16
1.8 本章小結 17
第2章 Hadoop偽分散式集群 18
2.1 安裝獨立運行的Hadoop 19
2.2 Hadoop偽分散式環境準備 21
2.3 Hadoop偽分散式安裝 25
2.4 HDFS操作命令 31
2.5 Java項目訪問HDFS 33
2.6 winutils 38
2.7 快速MapReduce程式示例 39
2.8 本章小結 42
第3章 HDFS分散式檔案系統 43
3.1 HDFS的體系結構 43
3.2 NameNode的工作 44
3.3 SecondaryNameNode 49
3.4 DataNode 50
3.5 HDFS的命令 51
3.6 RPC遠程過程調用 52
3.7 本章小結 53
第4章 分散式運算框架MapReduce 55
4.1 MapReduce的運算過程 55
4.2 WordCount示例 57
4.3 自定義Writable 60
4.4 Partitioner分區編程 63
4.5 自定義排序 65
4.6 Combiner編程 67
4.7 默認Mapper和默認Reducer 68
4.8 倒排索引 69
4.9 Shuffle 73
4.9.1 Spill過程 73
4.9.2 Sort過程 74
4.9.3 Merge過程 75
4.10 本章小結 76
第5章 Hadoop輸入輸出 78
5.1 自定義檔案輸入流 79
5.1.1 自定義LineTextInputFormat 79
5.1.2 自定義ExcelInputFormat類 82
5.1.3 DBInputFormat 86
5.1.4 自定義輸出流 89
5.2 順序檔案SequenceFile的讀寫 90
5.2.1 生成一個順序檔案 91
5.2.2 讀取順序檔案 91
5.2.3 獲取Key/Value類型 92
5.2.4 使用SequenceFileInputFormat讀取數據 93
5.3 本章小結 95
第6章 Hadoop分散式集群配置 96
6.1 Hadoop集群 96
6.2 本章小結 100
第7章 Hadoop高可用集群搭建 101
7.1 ZooKeeper簡介 101
7.2 ZooKeeper集群安裝 104
7.3 znode節點類型 105
7.4 觀察節點 106
7.5 配置Hadoop高可靠集群 106
7.6 用Java代碼操作集群 115
7.7 本章小結 117
第8章 數據倉庫Hive 118
8.1 Hive簡介 118
8.2 Hive3的安裝配置 120
8.2.1 使用Derby資料庫保存元數據 120
8.2.2 使用MySQL資料庫保存元數據 121
8.3 Hive命令 124
8.4 Hive內部表 127
8.5 Hive外部表 128
8.6 Hive表分區 128
8.6.1 分區的技術細節 128
8.6.2 分區示例 131
8.7 查詢示例匯總 133
8.8 Hive函式 134
8.8.1 關係運算符號 135
8.8.2 更多函式 136
8.8.3 使用Hive函式實現WordCount 138
8.9 本章小結 140
第9章 HBase資料庫 141
9.1 HBase的特點 141
9.1.1 HBase的高並發和實時處理數據 142
9.1.2 HBase的數據模型 142
9.2 HBase的安裝 144
9.2.1 HBase的單節點安裝 145
9.2.2 HBase的偽分散式安裝 147
9.2.3 Java客戶端代碼 149
9.2.4 其他Java操作代碼 152
9.3 HBase集群安裝 155
9.4 HBase Shell操作 159
9.4.1 DDL操作 160
9.4.2 DML操作 162
9.5 本章小結 166
第10章 Flume數據採集 167
10.1 Flume簡介 167
10.1.1 Flume原理 167
10.1.2 Flume的一些核心概念 168
10.2 Flume的安裝與配置 169
10.3 快速示例 169
10.4 在ZooKeeper中保存Flume的配置檔案 171
10.5 Flume的更多Source 174
10.5.1 avro source 174
10.5.2 thrift source和thrift sink 178
10.5.3 exec source 181
10.5.4 spool source 182
10.5.5 HDFS sinks 183
10.6 本章小結 184
第11章 Spark框架搭建及套用 185
11.1 安裝Spark 186
11.1.1 本地模式 186
11.1.2 偽分散式安裝 188
11.1.3 集群安裝 191
11.1.4 Spark on YARN 193
11.2 使用Scala開發Spark套用 196
11.2.1 安裝Scala 196
11.2.2 開發Spark程式 197
11.3 spark-submit 200
11.3.1 使用spark-submit提交 200
11.3.2 spark-submit參數說明 201
11.4 DataFrame 203
11.4.1 DataFrame概述 203
11.4.2 DataFrame基礎套用 205
11.5 Spark SQL 210
11.5.1 快速示例 211
11.5.2 Read和Write 215
11.6 Spark Streaming 216
11.6.1 快速示例 217
11.6.2 DStream 220
11.6.3 FileStream 220
11.6.4 視窗函式 222
11.6.5 updateStateByKey 223
11.7 共享變數 225
11.7.1 廣播變數 225
11.7.2 累加器 227
11.8 本章小結 227
第12章 Spark機器學習 228
12.1 機器學習 228
12.1.1 機器學習概述 228
12.1.2 Spark ML 230
12.2 典型機器學習流程介紹 230
12.2.1 提出問題 230
12.2.2 假設函式 231
12.2.3 代價函式 232
12.2.4 訓練模型確定參數 233
12.3 經典算法模型實戰 233
12.3.1 聚類算法實戰 233
12.3.2 回歸算法實戰 236
12.3.3 協同過濾算法實戰 239
第13章 影評分析項目實戰 245
13.1 項目內容 245
13.2 項目需求及分析 246
13.3 詳細實現 250
13.3.1 搭建項目環境 250
13.3.2 編寫爬蟲類 253
13.3.3 編寫分詞類 255
13.3.4 第一個job的Map階段實現 259
13.3.5 一個job的Reduce階段實現 259
13.3.6 第二個job的Map階段實現 260
13.3.7 第二個job的自定義排序類階段的實現 261
13.3.8 第二個job的自定義分區階段實現 261
13.3.9 第二個job的Reduce階段實現 262
13.3.10 Run程式主類實現 262
13.3.11 編寫詞雲類 263
13.3.12 效果測試 264
第14章 旅遊酒店評價分析項目實戰 266
14.1 項目介紹 266
14.2 項目需求及分析 267
14.2.1 數據集需求 267
14.2.2 功能需求 267
14.3 詳細實現 268
14.3.1 數據集上傳到HDFS 269
14.3.2 Spark數據清洗 271
14.3.3 構建Hive數據倉庫表 274
14.3.4 Hive表數據導出到MySQL 280
14.3.5 數據可視化開發 282