內容簡介
本書仔祝是華為ICT學院大數據技術官方教材,旨在幫助學生進一步學習大數據的基本概念、技術原理,以及大數據平台的搭建和使用。
本書從大數據的概念和特徵開始講起,首先讓讀者對大數據有一個感性的認識;接下來結合大數據平台的各個功能模組,詳細介紹大數據的存儲、處理、分析、可視化等原理和操作;對大數據在各種行業中的套用加以敘述,讓讀者更加充分地感受到大數據套用的價值。
除華為ICT學院的學生之外充腳犁,本書同樣適合正在備考HCNA-Big Data認證,或者正在參加HCNA-Big Data技術培訓的學員進行閱讀和參考。其他有志進入ICT行業的人腳簽乘員和大數據技術愛好者也可以通過閱讀本書,加深自己對大數據技術的理解。
目錄
第1章 大數據概述 0
1. 1 大數據的概念與價值 2
1.1.1 什麼是大數據 2
1.1.2 大數據的來源 4
1.1.3 大數據有什麼價值 5
1.1.4 如何挖掘企業大數據的價值 6
1.2 大數據的關鍵技宙趨凝符術 7
1.2.1 大數據採集、預處理與存察影背兆儲管理 7
1.2.2 大數據分析與挖掘 8
1.2.3 數據可視化 9
1.3 大數據產業 9
1.3.1 數據提供 9
1.3.2 技術提供 9
1.3.3 服務提供 10
1.4 大數據套用場景 10
1.5 本章總結 11
練習題 12
第 2章 Hadoop大數據處理平台 14
2.1 Hadoop平台概述 16
2.1.1 Hadoop簡介 16
2.1.2 Hadoop的特性 17
2.1.3 Hadoop套用現狀 17
2.1.4 Hadoop版本及相關平台 18
2.2 Hadoop生態系統 18
2.2.1 Hadoop存儲系統(HDFS&HBase) 18
2.2.2 Hadoop計算框架(MapReduce&YARN) 19
2.2.3 Hadoop數據倉庫(Hive) 20
2.2.4 Hadoop數據轉換與日誌處理(Sqoop&Flume) 20
2.2.5 Hadoop套用協調與工作流(ZooKeeper&Oozie) 20
2.2.6 大數據安全技術(Kerberos&LDAP) 21
2.2.7 大數據即時熱協廈查詢與搜尋(Impala&Solr) 21
2.2.8 大數據訊息訂閱(Kafka) 21
2.3 Hadoop安裝部署 22
2.3.1 Hadoop規劃部署 22
2.3.2 Hadoop的安裝方式 23
2.4 華為FusionInsight HD安裝部署 26
2.4.1 FusionInsight HD簡介 26
2.4.2 FusionInsight HD集成設計 28
2.4.3 FusionInsight HD安裝部署 33
2.4.4 FusionInsight HD重要參數配置 41
2.5 本章總結 42
練習題 43
第3章 大數據存儲技術(HDFS) 44
3.1 概述 46
3.1.1 分散式檔案系統的概念與作用 47
3.1.2 HDFS概述 47
3.2 HDFS的相關概念 48
3.2.1 塊 48
3.2.2 NameNode 49
3.2.3 Secondary NameNode 50
3.2.4 DataNode 51
3.3 HDFS體系架構與原理 52
3.3.1 HDFS體系架構 52
3.3.2 HDFS的高可用機制 52
3.3.3 HDFS的結構 54
3.3.4 HDFS的數據讀寫過程 57
3.4 HDFS接口及其在挨酷凝FusionInsight HD編程中的實踐 58
3.4.1 HDFS常用Shell命令 59
3.4.2 HDFS的Web界面 60
3.4.3 HDFS的Java接口及套用實例 62
3.5 本章總結 67
練習題 67
第4章 大數據離線計算框架(MapReduce & YARN) 70
4.1 MapReduce技術原理 72
4.1.1 MapReduce概述 73
4.1.2 Map函式與Reduce函式 73
4.2 YARN技術原理 74
4.2.1 YARN的概述與套用 74
4.2.2 YARN的架構 75
4.2.3 MapReduce的計算過程 76
4.2.4 YARN的資源調度 78
4.3 FusionInsight HD中MapReduce的套用 78
4.3.1 WordCount實例分析 78
4.3.2 MapReduce編程實踐 79
4.4 本章總結 85
練習題 86
第5章 大數據資料庫(HBase) 88
5.1 HBase概述 90
5.1.1 HBase簡介 90
5.1.2 HBase與關係型資料庫的區別 91
5.1.3 HBase的套用場景 92
5.2 HBase的架構原理 92
5.2.1 HBase的數據模型 92
5.2.2 表和Region 93
5.2.3 HBase的系統架構與功能組件 94
5.2.4 HBase的讀寫流程 96
5.2.5 HBase的Compaction過程 97
5.3 FusionInsight HD中HBase的編程實踐 98
5.3.1 FusionInsight HD中HBase的常用參數配置 98
5.3.2 HBase的常用Shell命令 100
5.3.3 HBase常用的Java API及套用實例 103
5.4 本章總結 118
練習題 118
第6章 大數據數據倉庫(Hive) 120
6.1 Hive概述 122
6.1.1 Hive簡介和套用 122
6.1.2 Hive的特性 123
6.1.3 Hive與傳統數據倉庫的區別 124
6.2 Hive的架構和數據存儲 124
6.2.1 Hive的架構原理 124
6.2.2 Hive的數據存儲模型 127
6.2.3 HiveQL編程 128
6.3 FusionInsight HD中Hive套用實踐 132
6.3.1 FusionInsight HD中Hive的常用參數配置 132
6.3.2 載入數據到Hive 133
6.3.3 使用HiveQL進行數據分析 135
6.4 本章總結 139
練習題 139
第7章 大數據數據轉換(Sqoop與Loader) 142
7.1 Sqoop概述 144
7.1.1 Sqoop簡介與套用 145
7.1.2 Sqoop的功能與特性 145
7.1.3 Sqoop與傳統ETL的區別 146
7.2 FusionInsight HD中Loader的套用實踐 146
7.2.1 FusionInsight HD中Loader與Sqoop的對比 147
7.2.2 FusionInsight HD中Loader的參數配置 148
7.2.3 使用Loader進行數據轉換 149
7.2.4 Loader的常用Shell命令 150
7.2.5 Loader套用實踐 152
7.3 本章總結 153
練習題 154
第8章 大數據日誌處理(Flume) 156
8.1 Flume概述 158
8.1.1 Flume簡介與套用 158
8.1.2 Flume的功能與特性 161
8.1.3 Flume與其他主流開源日誌收集系統的區別 162
8.2 FusionInsight HD中Flume的套用實踐 162
8.2.1 FusionInsight HD中Flume的常用參數配置 163
8.2.2 Flume常用的Shell命令 164
8.2.3 Flume與Kafka結合進行日誌處理 165
8.3 本章總結 168
練習題 169
第9章 大數據實時計算框架(Spark) 170
9.1 Spark概述 172
9.1.1 Spark的概述與套用 173
9.1.2 Scala語言介紹 174
9.1.3 Spark生態系統組件 174
9.1.4 Spark與Hadoop的對比 175
9.2 Spark技術架構 176
9.2.1 Spark的運行原理 176
9.2.2 RDD概念與原理 177
9.2.3 Spark的三種部署方式 181
9.2.4 使用開發工具測試Spark 182
9.3 FusionInsight HD中Spark套用實踐 183
9.3.1 運行Spark Shell 183
9.3.2 進行Spark RDD操作 184
9.3.3 使用Spark客戶端工具運行Spark程式 185
9.4 Spark Streaming 188
9.4.1 Spark Streaming的設計思想 188
9.4.2 Spark Streaming的套用實例 189
9.5 Spark SQL 191
9.5.1 Spark SQL的功能 191
9.5.2 FusionInsight HD中Spark SQL的套用實例 192
9.6 Spark MLlib 193
9.6.1 機器學習簡介 193
9.6.2 Spark MLlib的功能 194
9.7 Spark GraphX 194
9.7.1 圖計算簡介 194
9.7.2 Spark GraphX功能簡介 195
9.8 本章總結 195
練習題 196
第 10章 大數據流計算 198
10.1 流計算概述 200
10.1.1 靜態數據和流數據 201
10.1.2 流計算的概念 201
10.1.3 MapReduce和流計算 202
10.1.4 流計算框架 202
10.2 流計算的處理流程 203
10.2.1 數據實時採集 203
10.2.2 數據實時計算 203
10.2.3 數據實時查詢 203
10.3 Streaming流計算 204
10.3.1 Streaming簡介 204
10.3.2 Streaming的特點 206
10.3.3 Streaming在FusionInsight HD上的套用實踐 208
10.3.4 Spark Streaming與Streaming的差異 212
10.4 本章總結 213
練習題 213
第 11章 數據可視化 216
11.1 可視化概述 218
11.1.1 數據可視化簡介 219
11.1.2 數據可視化的重要性 219
11.1.3 可視化的發展歷程 219
11.1.4 數據可視化的過程 221
11.2 可視化工具 222
11.2.1 入門級工具(Excel) 222
11.2.2 普通工具(R語言) 222
11.2.3 工具(Tableau和QlikView) 223
11.3 可視化的典型套用 223
11.3.1 可視化在醫學上的套用 223
11.3.2 可視化在工程中的套用 224
11.3.3 可視化在網際網路的套用 225
11.4 本章總結 225
練習題 226
第 12章 大數據行業套用 228
12.1 大數據在金融行業的套用 230
12.2 大數據在電信行業的套用 232
12.3 大數據在公安系統的套用 236
12.4 大數據在網際網路行業的套用 237
12.5 本章總結 237
練習題 238
術語表 240
參考文獻 252
2.4 華為FusionInsight HD安裝部署 26
2.4.1 FusionInsight HD簡介 26
2.4.2 FusionInsight HD集成設計 28
2.4.3 FusionInsight HD安裝部署 33
2.4.4 FusionInsight HD重要參數配置 41
2.5 本章總結 42
練習題 43
第3章 大數據存儲技術(HDFS) 44
3.1 概述 46
3.1.1 分散式檔案系統的概念與作用 47
3.1.2 HDFS概述 47
3.2 HDFS的相關概念 48
3.2.1 塊 48
3.2.2 NameNode 49
3.2.3 Secondary NameNode 50
3.2.4 DataNode 51
3.3 HDFS體系架構與原理 52
3.3.1 HDFS體系架構 52
3.3.2 HDFS的高可用機制 52
3.3.3 HDFS的結構 54
3.3.4 HDFS的數據讀寫過程 57
3.4 HDFS接口及其在FusionInsight HD編程中的實踐 58
3.4.1 HDFS常用Shell命令 59
3.4.2 HDFS的Web界面 60
3.4.3 HDFS的Java接口及套用實例 62
3.5 本章總結 67
練習題 67
第4章 大數據離線計算框架(MapReduce & YARN) 70
4.1 MapReduce技術原理 72
4.1.1 MapReduce概述 73
4.1.2 Map函式與Reduce函式 73
4.2 YARN技術原理 74
4.2.1 YARN的概述與套用 74
4.2.2 YARN的架構 75
4.2.3 MapReduce的計算過程 76
4.2.4 YARN的資源調度 78
4.3 FusionInsight HD中MapReduce的套用 78
4.3.1 WordCount實例分析 78
4.3.2 MapReduce編程實踐 79
4.4 本章總結 85
練習題 86
第5章 大數據資料庫(HBase) 88
5.1 HBase概述 90
5.1.1 HBase簡介 90
5.1.2 HBase與關係型資料庫的區別 91
5.1.3 HBase的套用場景 92
5.2 HBase的架構原理 92
5.2.1 HBase的數據模型 92
5.2.2 表和Region 93
5.2.3 HBase的系統架構與功能組件 94
5.2.4 HBase的讀寫流程 96
5.2.5 HBase的Compaction過程 97
5.3 FusionInsight HD中HBase的編程實踐 98
5.3.1 FusionInsight HD中HBase的常用參數配置 98
5.3.2 HBase的常用Shell命令 100
5.3.3 HBase常用的Java API及套用實例 103
5.4 本章總結 118
練習題 118
第6章 大數據數據倉庫(Hive) 120
6.1 Hive概述 122
6.1.1 Hive簡介和套用 122
6.1.2 Hive的特性 123
6.1.3 Hive與傳統數據倉庫的區別 124
6.2 Hive的架構和數據存儲 124
6.2.1 Hive的架構原理 124
6.2.2 Hive的數據存儲模型 127
6.2.3 HiveQL編程 128
6.3 FusionInsight HD中Hive套用實踐 132
6.3.1 FusionInsight HD中Hive的常用參數配置 132
6.3.2 載入數據到Hive 133
6.3.3 使用HiveQL進行數據分析 135
6.4 本章總結 139
練習題 139
第7章 大數據數據轉換(Sqoop與Loader) 142
7.1 Sqoop概述 144
7.1.1 Sqoop簡介與套用 145
7.1.2 Sqoop的功能與特性 145
7.1.3 Sqoop與傳統ETL的區別 146
7.2 FusionInsight HD中Loader的套用實踐 146
7.2.1 FusionInsight HD中Loader與Sqoop的對比 147
7.2.2 FusionInsight HD中Loader的參數配置 148
7.2.3 使用Loader進行數據轉換 149
7.2.4 Loader的常用Shell命令 150
7.2.5 Loader套用實踐 152
7.3 本章總結 153
練習題 154
第8章 大數據日誌處理(Flume) 156
8.1 Flume概述 158
8.1.1 Flume簡介與套用 158
8.1.2 Flume的功能與特性 161
8.1.3 Flume與其他主流開源日誌收集系統的區別 162
8.2 FusionInsight HD中Flume的套用實踐 162
8.2.1 FusionInsight HD中Flume的常用參數配置 163
8.2.2 Flume常用的Shell命令 164
8.2.3 Flume與Kafka結合進行日誌處理 165
8.3 本章總結 168
練習題 169
第9章 大數據實時計算框架(Spark) 170
9.1 Spark概述 172
9.1.1 Spark的概述與套用 173
9.1.2 Scala語言介紹 174
9.1.3 Spark生態系統組件 174
9.1.4 Spark與Hadoop的對比 175
9.2 Spark技術架構 176
9.2.1 Spark的運行原理 176
9.2.2 RDD概念與原理 177
9.2.3 Spark的三種部署方式 181
9.2.4 使用開發工具測試Spark 182
9.3 FusionInsight HD中Spark套用實踐 183
9.3.1 運行Spark Shell 183
9.3.2 進行Spark RDD操作 184
9.3.3 使用Spark客戶端工具運行Spark程式 185
9.4 Spark Streaming 188
9.4.1 Spark Streaming的設計思想 188
9.4.2 Spark Streaming的套用實例 189
9.5 Spark SQL 191
9.5.1 Spark SQL的功能 191
9.5.2 FusionInsight HD中Spark SQL的套用實例 192
9.6 Spark MLlib 193
9.6.1 機器學習簡介 193
9.6.2 Spark MLlib的功能 194
9.7 Spark GraphX 194
9.7.1 圖計算簡介 194
9.7.2 Spark GraphX功能簡介 195
9.8 本章總結 195
練習題 196
第 10章 大數據流計算 198
10.1 流計算概述 200
10.1.1 靜態數據和流數據 201
10.1.2 流計算的概念 201
10.1.3 MapReduce和流計算 202
10.1.4 流計算框架 202
10.2 流計算的處理流程 203
10.2.1 數據實時採集 203
10.2.2 數據實時計算 203
10.2.3 數據實時查詢 203
10.3 Streaming流計算 204
10.3.1 Streaming簡介 204
10.3.2 Streaming的特點 206
10.3.3 Streaming在FusionInsight HD上的套用實踐 208
10.3.4 Spark Streaming與Streaming的差異 212
10.4 本章總結 213
練習題 213
第 11章 數據可視化 216
11.1 可視化概述 218
11.1.1 數據可視化簡介 219
11.1.2 數據可視化的重要性 219
11.1.3 可視化的發展歷程 219
11.1.4 數據可視化的過程 221
11.2 可視化工具 222
11.2.1 入門級工具(Excel) 222
11.2.2 普通工具(R語言) 222
11.2.3 工具(Tableau和QlikView) 223
11.3 可視化的典型套用 223
11.3.1 可視化在醫學上的套用 223
11.3.2 可視化在工程中的套用 224
11.3.3 可視化在網際網路的套用 225
11.4 本章總結 225
練習題 226
第 12章 大數據行業套用 228
12.1 大數據在金融行業的套用 230
12.2 大數據在電信行業的套用 232
12.3 大數據在公安系統的套用 236
12.4 大數據在網際網路行業的套用 237
12.5 本章總結 237
練習題 238
術語表 240
參考文獻 252