本書是華為ICT學院大數(shù)據(jù)技術(shù)官方教材,旨在幫助學生進一步學習大數(shù)據(jù)的基本概念、技術(shù)原理,以及大數(shù)據(jù)平臺的搭建和使用。
本書從大數(shù)據(jù)的概念和特征開始講起,首先讓讀者對大數(shù)據(jù)有一個感性的認識;接下來結(jié)合大數(shù)據(jù)平臺的各個功能模塊,詳細介紹大數(shù)據(jù)的存儲、處理、分析、可視化等原理和操作;對大數(shù)據(jù)在各種行業(yè)中的應用加以敘述,讓讀者更加充分地感受到大數(shù)據(jù)應用的價值。
除華為ICT學院的學生之外,本書同樣適合正在備考HCNA-Big Data認證,或者正在參加HCNA-Big Data技術(shù)培訓的學員進行閱讀和參考。其他有志進入ICT行業(yè)的人員和大數(shù)據(jù)技術(shù)愛好者也可以通過閱讀本書,加深自己對大數(shù)據(jù)技術(shù)的理解。
本書則是華為公司針對華為ICT學院大數(shù)據(jù)方向的在讀學生,專門組織合作伙伴和華為公司內(nèi)部員工開發(fā)的標準化教材,這套教材的目的在于循序漸進地幫助華為ICT學院大數(shù)據(jù)方向的學生掌握大數(shù)據(jù)技術(shù)的基本原理與應用場景,能夠在面對真實的業(yè)務場景時,獨立完成大數(shù)據(jù)平臺的搭建、維護及故障的處理。
多年的Hadoop大數(shù)據(jù)平臺企業(yè)業(yè)務應用實踐,具有豐富的Hadoop平臺運維,開發(fā)與分析實戰(zhàn)經(jīng)驗 2. 主導過多個大型大數(shù)據(jù)項目的開發(fā),如維達國際大數(shù)據(jù)平臺、中國商品進出口交易中心ETL日志分析大數(shù)據(jù)平臺 3、多年大數(shù)據(jù)與數(shù)據(jù)挖掘等IT領(lǐng)域技術(shù)培訓經(jīng)驗,豐富的課程設(shè)計和授課經(jīng)驗。
第1章 大數(shù)據(jù)概述 0
1.1 大數(shù)據(jù)的概念與價值 2
1.1.1 什么是大數(shù)據(jù) 2
1.1.2 大數(shù)據(jù)的來源 4
1.1.3 大數(shù)據(jù)有什么價值 5
1.1.4 如何挖掘企業(yè)大數(shù)據(jù)的價值 6
1.2 大數(shù)據(jù)的關(guān)鍵技術(shù) 7
1.2.1 大數(shù)據(jù)采集、預處理與存儲管理 7
1.2.2 大數(shù)據(jù)分析與挖掘 8
1.2.3 數(shù)據(jù)可視化 9
1.3 大數(shù)據(jù)產(chǎn)業(yè) 9
1.3.1 數(shù)據(jù)提供 9
1.3.2 技術(shù)提供 9
1.3.3 服務提供 10
1.4 大數(shù)據(jù)應用場景 10
1.5 本章總結(jié) 11
練習題 12
第2章 Hadoop大數(shù)據(jù)處理平臺 14
2.1 Hadoop平臺概述 16
2.1.1 Hadoop簡介 16
2.1.2 Hadoop的特性 17
2.1.3 Hadoop應用現(xiàn)狀 17
2.1.4 Hadoop版本及相關(guān)平臺 18
2.2 Hadoop生態(tài)系統(tǒng) 18
2.2.1 Hadoop存儲系統(tǒng)(HDFS&HBase) 18
2.2.2 Hadoop計算框架(MapReduce&YARN) 19
2.2.3 Hadoop數(shù)據(jù)倉庫(Hive) 20
2.2.4 Hadoop數(shù)據(jù)轉(zhuǎn)換與日志處理(Sqoop&Flume) 20
2.2.5 Hadoop應用協(xié)調(diào)與工作流(ZooKeeper&Oozie) 20
2.2.6 大數(shù)據(jù)安全技術(shù)(Kerberos&LDAP) 21
2.2.7 大數(shù)據(jù)即時查詢與搜索(Impala&Solr) 21
2.2.8 大數(shù)據(jù)消息訂閱(Kafka) 21
2.3 Hadoop安裝部署 22
2.3.1 Hadoop規(guī)劃部署 22
2.3.2 Hadoop的安裝方式 23
2.4 華為FusionInsight HD安裝部署 26
2.4.1 FusionInsight HD簡介 26
2.4.2 FusionInsight HD集成設(shè)計 28
2.4.3 FusionInsight HD安裝部署 33
2.4.4 FusionInsight HD重要參數(shù)配置 41
2.5 本章總結(jié) 42
練習題 43
第3章 大數(shù)據(jù)存儲技術(shù)(HDFS) 44
3.1 概述 46
3.1.1 分布式文件系統(tǒng)的概念與作用 47
3.1.2 HDFS概述 47
3.2 HDFS的相關(guān)概念 48
3.2.1 塊 48
3.2.2 NameNode 49
3.2.3 Secondary NameNode 50
3.2.4 DataNode 51
3.3 HDFS體系架構(gòu)與原理 52
3.3.1 HDFS體系架構(gòu) 52
3.3.2 HDFS的高可用機制 52
3.3.3 HDFS的目錄結(jié)構(gòu) 54
3.3.4 HDFS的數(shù)據(jù)讀寫過程 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 本章總結(jié) 67
練習題 67
第4章 大數(shù)據(jù)離線計算框架(MapReduce & YARN) 70
4.1 MapReduce技術(shù)原理 72
4.1.1 MapReduce概述 73
4.1.2 Map函數(shù)與Reduce函數(shù) 73
4.2 YARN技術(shù)原理 74
4.2.1 YARN的概述與應用 74
4.2.2 YARN的架構(gòu) 75
4.2.3 MapReduce的計算過程 76
4.2.4 YARN的資源調(diào)度 78
4.3 FusionInsight HD中MapReduce的應用 78
4.3.1 WordCount實例分析 78
4.3.2 MapReduce編程實踐 79
4.4 本章總結(jié) 85
練習題 86
第5章 大數(shù)據(jù)數(shù)據(jù)庫(HBase) 88
5.1 HBase概述 90
5.1.1 HBase簡介 90
5.1.2 HBase與關(guān)系型數(shù)據(jù)庫的區(qū)別 91
5.1.3 HBase的應用場景 92
5.2 HBase的架構(gòu)原理 92
5.2.1 HBase的數(shù)據(jù)模型 92
5.2.2 表和Region 93
5.2.3 HBase的系統(tǒng)架構(gòu)與功能組件 94
5.2.4 HBase的讀寫流程 96
5.2.5 HBase的Compaction過程 97
5.3 FusionInsight HD中HBase的編程實踐 98
5.3.1 FusionInsight HD中HBase的常用參數(shù)配置 98
5.3.2 HBase的常用Shell命令 100
5.3.3 HBase常用的Java API及應用實例 103
5.4 本章總結(jié) 118
練習題 118
第6章 大數(shù)據(jù)數(shù)據(jù)倉庫(Hive) 120
6.1 Hive概述 122
6.1.1 Hive簡介和應用 122
6.1.2 Hive的特性 123
6.1.3 Hive與傳統(tǒng)數(shù)據(jù)倉庫的區(qū)別 124
6.2 Hive的架構(gòu)和數(shù)據(jù)存儲 124
6.2.1 Hive的架構(gòu)原理 124
6.2.2 Hive的數(shù)據(jù)存儲模型 127
6.2.3 HiveQL編程 128
6.3 FusionInsight HD中Hive應用實踐 132
6.3.1 FusionInsight HD中Hive的常用參數(shù)配置 132
6.3.2 加載數(shù)據(jù)到Hive 133
6.3.3 使用HiveQL進行數(shù)據(jù)分析 135
6.4 本章總結(jié) 139
練習題 139
第7章 大數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)換(Sqoop與Loader) 142
7.1 Sqoop概述 144
7.1.1 Sqoop簡介與應用 145
7.1.2 Sqoop的功能與特性 145
7.1.3 Sqoop與傳統(tǒng)ETL的區(qū)別 146
7.2 FusionInsight HD中Loader的應用實踐 146
7.2.1 FusionInsight HD中Loader與Sqoop的對比 147
7.2.2 FusionInsight HD中Loader的參數(shù)配置 148
7.2.3 使用Loader進行數(shù)據(jù)轉(zhuǎn)換 149
7.2.4 Loader的常用Shell命令 150
7.2.5 Loader應用實踐 152
7.3 本章總結(jié) 153
練習題 154
第8章 大數(shù)據(jù)日志處理(Flume) 156
8.1 Flume概述 158
8.1.1 Flume簡介與應用 158
8.1.2 Flume的功能與特性 161
8.1.3 Flume與其他主流開源日志收集系統(tǒng)的區(qū)別 162
8.2 FusionInsight HD中Flume的應用實踐 162
8.2.1 FusionInsight HD中Flume的常用參數(shù)配置 163
8.2.2 Flume常用的Shell命令 164
8.2.3 Flume與Kafka結(jié)合進行日志處理 165
8.3 本章總結(jié) 168
練習題 169
第9章 大數(shù)據(jù)實時計算框架(Spark) 170
9.1 Spark概述 172
9.1.1 Spark的概述與應用 173
9.1.2 Scala語言介紹 174
9.1.3 Spark生態(tài)系統(tǒng)組件 174
9.1.4 Spark與Hadoop的對比 175
9.2 Spark技術(shù)架構(gòu) 176
9.2.1 Spark的運行原理 176
9.2.2 RDD概念與原理 177
9.2.3 Spark的三種部署方式 181
9.2.4 使用開發(fā)工具測試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的設(shè)計思想 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 本章總結(jié) 195
練習題 196
第10章 大數(shù)據(jù)流計算 198
10.1 流計算概述 200
10.1.1 靜態(tài)數(shù)據(jù)和流數(shù)據(jù) 201
10.1.2 流計算的概念 201
10.1.3 MapReduce和流計算 202
10.1.4 流計算框架 202
10.2 流計算的處理流程 203
10.2.1 數(shù)據(jù)實時采集 203
10.2.2 數(shù)據(jù)實時計算 203
10.2.3 數(shù)據(jù)實時查詢 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 本章總結(jié) 213
練習題 213
第11章 數(shù)據(jù)可視化 216
11.1 可視化概述 218
11.1.1 數(shù)據(jù)可視化簡介 219
11.1.2 數(shù)據(jù)可視化的重要性 219
11.1.3 可視化的發(fā)展歷程 219
11.1.4 數(shù)據(jù)可視化的過程 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 可視化在醫(yī)學上的應用 223
11.3.2 可視化在工程中的應用 224
11.3.3 可視化在互聯(lián)網(wǎng)的應用 225
11.4 本章總結(jié) 225
練習題 226
第12章 大數(shù)據(jù)行業(yè)應用 228
12.1 大數(shù)據(jù)在金融行業(yè)的應用 230
12.2 大數(shù)據(jù)在電信行業(yè)的應用 232
12.3 大數(shù)據(jù)在公安系統(tǒng)的應用 236
12.4 大數(shù)據(jù)在互聯(lián)網(wǎng)行業(yè)的應用 237
12.5 本章總結(jié) 237
練習題 238
術(shù)語表 240
參考文獻 252