本書分為5篇,包括11章和3個附錄。大數(shù)據(jù)基礎(chǔ)篇包括第1章(緒論);大數(shù)據(jù)存儲篇包括第2~3章(HDFS分布式文件系統(tǒng)、NoSQL及其HBase分布式數(shù)據(jù)庫系統(tǒng));大數(shù)據(jù)計算篇包括第4~7章(MapReduce分布式計算、大數(shù)據(jù)的Spark內(nèi)存計算、大數(shù)據(jù)的流計算、大數(shù)據(jù)的圖計算);大數(shù)據(jù)管理、查詢分析及可視篇包括第8~10章(Hadoop的數(shù)據(jù)整合、集群管理與維護,大數(shù)據(jù)的查詢分析技術(shù),R語言與可視化技術(shù));大數(shù)據(jù)發(fā)展及應(yīng)用篇包括第11章(大數(shù)據(jù)應(yīng)用——人工智能深度學(xué)習(xí))。本書體現(xiàn)了校際聯(lián)盟、校企合作的建設(shè)成果,將理論與實踐相結(jié)合,突出實踐應(yīng)用。本書配套的教學(xué)資源豐富,包括PPT、教學(xué)大綱、實驗指導(dǎo)書、習(xí)題、模擬考試試卷等,讀者在可以登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊后免費下載。本書可以作為應(yīng)用型本科院校、高等職業(yè)院校計算機專業(yè)、大數(shù)據(jù)專業(yè)、人工智能專業(yè)的教材,也可以作為相關(guān)培訓(xùn)機構(gòu)的教材,還可以作為軟件開發(fā)和應(yīng)用從業(yè)人員的參考書。
劉甫迎,教授,碩士研究生導(dǎo)師,2006年獲的國家級教學(xué)名師獎、成為當(dāng)時全國高職高專首位獲得該殊榮的教師。2006~2010年,擔(dān)任高職高專計算機類專業(yè)教學(xué)指導(dǎo)委委員,曾獲四川省有突出貢獻的優(yōu)秀專家稱號,四川省優(yōu)秀教師稱號。1982年1月畢業(yè)于電子科技大學(xué)計算機工程專業(yè)。1975年至1995年在中國科學(xué)院成都計算機應(yīng)用研究所,歷任軟件研究室副主任、副研究員。1985年在加拿大McMaster大學(xué)作中科院公派訪問學(xué)者。作為負責(zé)人獲國家精品課程一項,四川省精品課程二項,獲四川省教學(xué)成果一、二等獎各一項。作為主編2002年獲全國普通高等學(xué)校優(yōu)秀教材二等獎。1981年獲四川省重大科技成果獎。發(fā)表論文40余篇,主編出版教材、著作21部。獲選普通高等教育“十一五”國家級規(guī)劃教材兩部。獲選“十三五”職業(yè)教育國家規(guī)劃教材一部。
目錄
第一篇 大數(shù)據(jù)基礎(chǔ)篇
第1章 緒 論 2
1.1 大數(shù)據(jù)概述 2
1.1.1 三次信息化浪潮、大數(shù)據(jù)的興起與影響 2
1.1.2 大數(shù)據(jù)的概念及特征 5
1.1.3 大數(shù)據(jù)的計算模式 9
1.1.4 大數(shù)據(jù)的關(guān)鍵技術(shù) 11
1.2 大數(shù)據(jù)的Hadoop解決方案 13
1.2.1 Hadoop的由來與發(fā)展 13
1.2.2 Hadoop的特性、運行原理和生態(tài)環(huán)境 14
1.2.3 Hadoop的企業(yè)級開發(fā)架構(gòu)、技術(shù)與落地應(yīng)用 18
1.3 大數(shù)據(jù)各時期的熱點與數(shù)據(jù)使用發(fā)展趨勢 21
1.3.1 數(shù)據(jù)架構(gòu)各時期的演變 22
1.3.2 Hadoop的YARN計算框架 24
1.3.3 大數(shù)據(jù)的實時交互式分析 25
1.3.4 數(shù)據(jù)使用發(fā)展趨勢 25
習(xí)題 29
第二篇 大數(shù)據(jù)存儲篇
第2章 HDFS分布式文件系統(tǒng) 32
2.1 HDFS及其設(shè)計思路和架構(gòu) 32
2.1.1 HDFS及其設(shè)計思路 32
2.1.2 HDFS的架構(gòu)與基本存儲單元 33
2.1.3 HDFS的存/取流程 34
2.2 HDFS Shell的基本操作 38
2.3 HDFS的命令行操作 41
2.3.1 HDFS文件訪問權(quán)限 41
2.3.2 通過Web瀏覽HDFS文件 42
2.3.3 HDFS的接口(API)使用 44
習(xí)題 46
第3章 NoSQL及其HBase分布式數(shù)據(jù)庫系統(tǒng) 48
3.1 大數(shù)據(jù)環(huán)境中的NoSQL 48
3.1.1 NoSQL應(yīng)運而生 48
3.1.2 NoSQL的類型 49
3.1.3 NoSQL的三大基石 51
3.2 HBase的設(shè)計思路與架構(gòu) 54
3.2.1 HBase的系統(tǒng)架構(gòu)與組件 54
3.2.2 HBase的數(shù)據(jù)模型、物理存儲與查找 56
3.2.3 HBase的數(shù)據(jù)讀/寫流程 60
3.3 HBase的操作與數(shù)據(jù)管理 61
3.3.1 HBase的Shell操作 61
3.3.2 Java API 與非Java訪問 64
3.3.3 HBase的編程實例 65
3.4 從RDBMS到HBase 67
3.5 為應(yīng)用程序選擇合適的Hadoop數(shù)據(jù)存儲機制 69
習(xí)題 70
第三篇 大數(shù)據(jù)計算篇
第4章 MapReduce分布式計算 74
4.1 MapReduce的架構(gòu)與源碼分析 74
4.1.1 MapReduce的架構(gòu)與執(zhí)行過程 74
4.1.2 MapReduce的輸入與輸出 75
4.1.3 MapReduce的Job類 78
4.2 MapReduce任務(wù)的異常處理與失敗處理 79
4.2.1 MapReduce任務(wù)的異常處理方式 79
4.2.2 MapReduce任務(wù)的失敗處理方式 80
4.3 在HBase上運行MapReduce 80
4.4 MapReduce程序開發(fā)實例 82
4.5 基于MapReduce的數(shù)據(jù)挖掘應(yīng)用 88
4.5.1 數(shù)據(jù)挖掘與高級分析庫Mahout 88
4.5.2 矩陣乘法 90
4.5.3 相似度計算 93
習(xí)題 96
第5章 大數(shù)據(jù)的Spark內(nèi)存計算 99
5.1 Spark概述 99
5.1.1 Spark及其架構(gòu) 99
5.1.2 Spark的特點及性能 100
5.1.3 Spark的基本原理及計算方法 101
5.1.4 Spark與MapReduce、Hive對比 102
5.1.5 Spark在國內(nèi)的現(xiàn)狀以及未來的展望 103
5.2 Spark的RDD 103
5.2.1 Spark的核心概念——RDD 103
5.2.2 RDD基本操作 104
5.2.3 Spark提供的Transformation實現(xiàn)與Action實現(xiàn) 104
5.3 Spark的運行模式 105
5.3.1 Spark的程序框架 105
5.3.2 獨立(Standalone)模式 107
5.3.3 Spark YARN的模式 108
5.4 Spark應(yīng)用程序 109
5.4.1 Scala語言簡介 109
5.4.2 Spark程序設(shè)計 111
5.5 Spark SQL 116
5.5.1 Spark SQL簡介 116
5.5.2 DataFrame 117
5.5.3 Datasets 122
5.5.4 使用數(shù)據(jù)源 124
習(xí)題 127
第6章 大數(shù)據(jù)的流計算 129
6.1 流計算概述 129
6.1.1 無界數(shù)據(jù)及流數(shù)據(jù) 129
6.1.2 流計算概念 131
6.1.3 流計算框架 132
6.1.4 流計算的價值與應(yīng)用 137
6.2 流計算處理流程 138
6.2.1 概述 138
6.2.2 數(shù)據(jù)實時采集 138
6.2.3 數(shù)據(jù)實時計算 139
6.2.4 實時查詢服務(wù) 140
6.3 開源流計算框架Flink 141
6.3.1 Flink簡介 141
6.3.2 Flink的基本架構(gòu) 142
6.3.3 Flink編程 144
習(xí)題 148
第7章 大數(shù)據(jù)的圖計算 149
7.1 大數(shù)據(jù)的圖計算概述 149
7.2 Spark GraphX 150
7.2.1 Spark GraphX簡介 150
7.2.2 Spark GraphX的實現(xiàn)分析 151
7.2.3 Spark GraphX實例 152
7.3 Pregel 155
7.3.1 Pregel簡介 155
7.3.2 Pregel圖計算模型 156
7.3.3 Pregel的體系結(jié)構(gòu) 159
7.3.4 PageRank算法及其實現(xiàn) 161
習(xí)題 165
第四篇 大數(shù)據(jù)管理、查詢分析及可視篇
第8章 Hadoop的數(shù)據(jù)整合、集群管理與維護 168
8.1 Hadoop數(shù)據(jù)整合 168
8.1.1 Hadoop計算環(huán)境中的數(shù)據(jù)整合問題 168
8.1.2 數(shù)據(jù)庫整合工具Sqoop(導(dǎo)入、導(dǎo)出數(shù)據(jù)) 168
8.1.3 Hadoop平臺內(nèi)部數(shù)據(jù)整合工具——HCatalog 172
8.2 Hadoop集群管理與維護 175
8.2.1 云計算平臺的管理體系 175
8.2.2 集群中的配置管理與協(xié)調(diào)者——ZooKeeper 177
8.2.3 Hadoop集群部署與監(jiān)控集成工具——Ambari 179
8.2.4 基于Kerberos的Hadoop安全管理 181
8.2.5 Hadoop集群管理工具分析 183
習(xí)題 184
第9章 大數(shù)據(jù)的查詢分析技術(shù) 185
9.1 大數(shù)據(jù)對傳統(tǒng)分析處理的挑戰(zhàn) 185
9.2 查詢(SQL on Hadoop) 185
9.3 使用Hive和Pig處理數(shù)據(jù) 188
9.3.1 Hive與HiveQL命令 188
9.3.2 Pig與Pig Latin 192
9.3.3 實例 193
9.3.4 Hive與Pig對比 195
9.4 實時互動的SQL:Impala和Drill 195
9.4.1 Cloudera Impala 195
9.4.2 Apache Drill 196
習(xí)題 205
第10章 R語言與可視化技術(shù) 206
10.1 開源可視化統(tǒng)計繪圖工具——R語言 206
10.1.1 R語言概述 206
10.1.2 R軟件資源 207
10.1.3 函數(shù)、運算符、數(shù)據(jù)表和數(shù)據(jù)框 208
10.1.4 數(shù)據(jù)存/取及腳本語言 209
10.1.5 繪圖及實例 210
10.2 可視化技術(shù) 213
10.2.1 可視化技術(shù)及分類 213
10.2.2 入門級工具 214
10.2.3 互動圖形用戶界面控制 215
10.2.4 地圖工具 216
10.2.5 可視化設(shè)計工具 216
10.2.6 專家級可視化分析工具 217
習(xí)題 218
第五篇 大數(shù)據(jù)發(fā)展及應(yīng)用篇
第11章 大數(shù)據(jù)應(yīng)用——人工智能深度學(xué)習(xí) 220
11.1 理解大數(shù)據(jù)深度學(xué)習(xí) 220
11.1.1 機器學(xué)習(xí)、感知器與大數(shù)據(jù)深度學(xué)習(xí) 220
11.1.2 人工神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí) 221
11.2 深度學(xué)習(xí)的編程基礎(chǔ) 222
11.2.1 環(huán)境配置 222
11.2.2 Python入門 227
11.2.3 NumPy 229
11.2.4 機器學(xué)習(xí)實踐 232
11.3 大數(shù)據(jù)深度學(xué)習(xí)實踐 240
11.3.1 卷積神經(jīng)網(wǎng)絡(luò) 240
11.3.2 深度學(xué)習(xí)在圖像中的應(yīng)用 240
習(xí)題 245
附錄A 《大數(shù)據(jù)原理與技術(shù)》教學(xué)大綱 246
附錄B 實驗指導(dǎo)書 247
B.1 實驗一:Hadoop平臺安裝環(huán)境配置(Ambari) 247
B.2 實驗二:Hadoop集群配置及HDFS的使用 252
B.3 實驗三:HBase的安裝與實例運行 257
B.4 實驗四:MapReduce計算 263
B.5 實驗五:基于MapReduce的大數(shù)據(jù)挖掘?qū)嵗?264
B.6 實驗六:認識Spark 265
B.7 實驗七:Spark編程 268
B.8 實驗八:初步體驗大數(shù)據(jù)流計算框架Flink 270
B.9 實驗九:數(shù)據(jù)庫整合工具Sqoop與查詢分析(Hive、Pig) 273
B.10 實驗十:R語言與可視化技術(shù) 278
B.11 實驗十一:認識深度學(xué)習(xí)(PyCharm、Python、NumPy、 Keras) 280
B.12 實驗十二:深度學(xué)習(xí)實例 284
附錄C 模擬考試 288
C.1 模擬考試試卷(一) 288
C.2 模擬考試試卷(二) 290
參考文獻 293