本書是"大數(shù)據(jù)應用開發(fā)(Java)”1+X職業(yè)技能等級證書配套教材,同時也是藍橋學院"Java全棧工程師”培養(yǎng)項目配套教材。全書共16章,包括大數(shù)據(jù)概述、Hadoop、HDFS、MapReduce、YARN、ZooKeeper、Hive、Flume、Azkaban、Sqoop、HBase、Kafka、Spark、大數(shù)據(jù)平臺的管理與監(jiān)控、大數(shù)據(jù)離線計算項目和大數(shù)據(jù)實時計算項目。本書從零基礎開始逐一講解大數(shù)據(jù)體系中的各種技術,通過豐富的實戰(zhàn)案例闡述重點、難點知識,為初學者進入大數(shù)據(jù)領域打好基礎。各章節(jié)設計合理,在每章開頭設置本章簡介,在知識點介紹后緊跟實踐操作,在每章的末尾對重要內(nèi)容進行了概括性回顧并通過練習幫助讀者鞏固相關知識。本書配套資源豐富,在藍橋在線學習平臺(www.lanqiao.cn/oneplusx/)上匯集了微課、實驗等多種學習資源。 本書直接服務于"大數(shù)據(jù)應用開發(fā)(Java)”1+X職業(yè)技能等級證書工作,可作為職業(yè)院校、應用型本科院校的計算機應用技術、軟件技術、軟件工程、網(wǎng)絡工程和大數(shù)據(jù)應用技術等計算機類專業(yè)的教材,也可供從事計算機相關工作的技術人員參考。
國信藍橋教育科技(北京)股份有限公司成立于2005年,是一家以大學生就業(yè)為切入點,以職業(yè)服務為主線,基于大學生職業(yè)生涯各個階段的需求提供精準服務的人才大數(shù)據(jù)科技服務平臺;通過提供教育、就業(yè)、職業(yè)服務,連接高校和企業(yè),伴隨大學生成長;獲得的資質包括國家高新技術企業(yè)、中關村高新技術企業(yè)、人力資源服務許可證、出版物經(jīng)營許可證、教育部產(chǎn)學合作協(xié)同育人單位、教育部1+X職業(yè)技能等級證書培訓評價組織。
第1章 大數(shù)據(jù)概述 1
1.1 大數(shù)據(jù)的歷史、現(xiàn)狀與未來 1
1.1.1 大數(shù)據(jù)的歷史 1
1.1.2 大數(shù)據(jù)的現(xiàn)狀 3
1.1.3 大數(shù)據(jù)的未來 5
1.2 大數(shù)據(jù)的概念、特征與價值 5
1.2.1 大數(shù)據(jù)的概念 5
1.2.2 大數(shù)據(jù)的特征 6
1.2.3 大數(shù)據(jù)的價值 7
1.3 大數(shù)據(jù)的技術架構 8
1.4 大數(shù)據(jù)離線計算與實時計算 11
1.4.1 大數(shù)據(jù)離線計算 11
1.4.2 大數(shù)據(jù)實時計算 12
1.5 大數(shù)據(jù)下的數(shù)據(jù)驅動 13
1.6 本章小結 15
1.7 本章練習 15
第2章 初識Hadoop 17
2.1 Hadoop概述 17
2.2 Hadoop生態(tài)圈 18
2.3 Hadoop集群安裝部署 21
2.3.1 集群環(huán)境準備 21
2.3.2 Hadoop集群的重要概念 27
2.3.3 偽分布模式安裝 28
2.3.4 全分布模式安裝 34
2.4 本章小結 36
2.5 本章練習 36
第3章 分布式文件系統(tǒng)—初識HDFS 38
3.1 HDFS概述 38
3.2 HDFS工作機制 39
3.2.1 HDFS通信機制 40
3.2.2 HDFS數(shù)據(jù)冗余機制 41
3.2.3 HDFS元數(shù)據(jù)管理機制 41
3.2.4 HDFS數(shù)據(jù)讀寫機制 49
3.2.5 HDFS異;謴蜋C制 51
3.2.6 HDFS安全模式機制 51
3.3 HDFS操作與編程接口 52
3.3.1 HDFS Web UI 52
3.3.2 HDFS Shell 54
3.3.3 HDFS Java API編程 61
3.4 本章小結 64
3.5 本章練習 64
第4章 分布式計算框架MapReduce 66
4.1 MapReduce概述 66
4.2 MapReduce運行機制 67
4.3 編程實現(xiàn)WordCount 73
4.4 MapReduce數(shù)據(jù)類型與輸入/輸出格式 76
4.5 文件切片 78
4.6 Shuffle機制詳解 79
4.7 數(shù)據(jù)清洗案例 90
4.8 本章小結 94
4.9 本章練習 95
第5章 統(tǒng)一資源管理和調(diào)度框架YARN 97
5.1 YARN概述 97
5.2 YARN體系架構 98
5.3 YARN工作流程 99
5.4 YARN調(diào)度器與調(diào)度策略 100
5.5 本章小結 101
5.6 本章練習 102
第6章 分布式協(xié)調(diào)框架ZooKeeper 103
6.1 ZooKeeper概述 103
6.2 ZooKeeper系統(tǒng)模型 104
6.2.1 數(shù)據(jù)模型 104
6.2.2 集群模型 107
6.3 ZooKeeper核心機制 107
6.4 ZooKeeper典型應用 111
6.5 ZooKeeper安裝部署 114
6.6 ZooKeeper Shell 116
6.7 本章小結 118
6.8 本章練習 119
第7章 數(shù)據(jù)倉庫Hive 121
7.1 Hive概述 121
7.2 Hive體系架構 123
7.3 Hive安裝部署 124
7.4 Hive數(shù)據(jù)類型 129
7.5 Hive文件格式 130
7.6 Hive數(shù)據(jù)模型 131
7.7 Hive函數(shù) 132
7.8 Hive實戰(zhàn) 133
7.8.1 DDL操作 133
7.8.2 DML操作 139
7.8.3 WordCount詳解 153
7.8.4 高級操作 154
7.9 本章小結 163
7.10 本章練習 164
第8章 日志采集工具Flume 166
8.1 Flume概述 166
8.2 Flume體系架構 166
8.3 Flume安裝部署 170
8.4 Flume實戰(zhàn) 171
8.5 本章小結 174
8.6 本章練習 174
第9章 工作流調(diào)度器Azkaban 175
9.1 Azkaban概述 175
9.2 Azkaban的安裝部署 177
9.3 Azkaban實戰(zhàn) 183
9.4 本章小結 187
9.5 本章練習 187
第10章 數(shù)據(jù)遷移工具Sqoop 189
10.1 Sqoop概述 189
10.2 Sqoop的安裝部署 190
10.3 Sqoop實戰(zhàn) 191
10.4 本章小結 200
10.5 本章練習 201
第11章 分布式列存儲數(shù)據(jù)庫HBase 202
11.1 HBase概述 202
11.2 HBase數(shù)據(jù)模型 203
11.3 HBase體系架構 206
11.4 HBase運行機制 208
11.5 HBase安裝部署 210
11.6 HBase實戰(zhàn) 214
11.6.1 HBase Shell 214
11.6.2 HBase Java API編程 220
11.6.3 HBase中使用過濾器Filter 228
11.6.4 HBase中使用MapReduce 236
11.7 HBase性能優(yōu)化 242
11.7.1 數(shù)據(jù)庫表設計優(yōu)化 242
11.7.2 數(shù)據(jù)庫讀寫優(yōu)化 243
11.7.3 HBase參數(shù)設置優(yōu)化 243
11.8 本章小結 244
11.9 本章練習 246
第12章 分布式消息隊列Kafka 248
12.1 兩種消息模型 248
12.2 Kafka架構與機制 249
12.3 Kafka的安裝部署 253
12.4 Kafka實戰(zhàn) 256
12.4.1 Kafka Shell 256
12.4.2 Kafka Java API 258
12.5 本章小結 261
12.6 本章練習 262
第13章 內(nèi)存計算框架Spark 264
13.1 Spark概述 264
13.2 Spark體系架構 266
13.3 Spark安裝部署 268
13.4 Spark客戶端操作 272
13.5 Spark RDD 276
13.5.1 Spark RDD概述 276
13.5.2 Spark RDD算子 276
13.5.3 Spark RDD依賴關系 284
13.5.4 Spark RDD緩存 285
13.6 Spark SQL 286
13.6.1 Spark SQL概述 286
13.6.2 Spark SQL DataFrame/DataSet 287
13.6.3 Spark SQL編程 288
13.6.4 Spark操作JDBC 291
13.6.5 Spark操作Hive 293
13.7 Spark Streaming 294
13.7.1 Spark Streaming概述 294
13.7.2 Spark Streaming實現(xiàn)實時WordCount 295
13.7.3 Spark Streaming整合Flume 300
13.7.4 Spark Streaming整合Kafka 303
13.8 本章小結 305
13.9 本章練習 306
第14章 大數(shù)據(jù)平臺的管理與監(jiān)控 308
14.1 平臺管理與監(jiān)控概述 308
14.2 Nagios介紹 309
14.3 Ganglia介紹 310
14.4 Cacti介紹 311
14.5 JMX介紹 312
14.6 本章小結 321
14.7 本章練習 321
第15章 大數(shù)據(jù)離線計算項目 323
15.1 項目概述 323
15.2 需求分析與項目設計 323
15.3 數(shù)據(jù)預處理 325
15.4 數(shù)據(jù)分析并導出結果到MySQL 327
15.5 數(shù)據(jù)可視化 330
15.6 本章小結 353
15.7 本章練習 354
第16章 大數(shù)據(jù)實時計算項目 355
16.1 項目概述 355
16.2 需求分析與項目設計 355
16.3 數(shù)據(jù)采集到消息中間件 356
16.4 數(shù)據(jù)實時計算并保存到Redis 357
16.5 數(shù)據(jù)可視化 359
16.6 本章小結 363
16.7 本章練習 363
附錄A 部分練習參考答案及解析 364
參考文獻 377