本書分為5篇,包括11章和3個(gè)附錄。大數(shù)據(jù)基礎(chǔ)篇包括第1章(緒論);大數(shù)據(jù)存儲(chǔ)篇包括第2~3章(HDFS分布式文件系統(tǒng)、NoSQL及其HBase分布式數(shù)據(jù)庫系統(tǒng));大數(shù)據(jù)計(jì)算篇包括第4~7章(MapReduce分布式計(jì)算、大數(shù)據(jù)的Spark內(nèi)存計(jì)算、大數(shù)據(jù)的流計(jì)算、大數(shù)據(jù)的圖計(jì)算);大數(shù)據(jù)管理、查詢分析及可視篇包括第8~10章(Hadoop的數(shù)據(jù)整合、集群管理與維護(hù),大數(shù)據(jù)的查詢分析技術(shù),R語言與可視化技術(shù));大數(shù)據(jù)發(fā)展及應(yīng)用篇包括第11章(大數(shù)據(jù)應(yīng)用——人工智能深度學(xué)習(xí))。本書體現(xiàn)了校際聯(lián)盟、校企合作的建設(shè)成果,將理論與實(shí)踐相結(jié)合,突出實(shí)踐應(yīng)用。本書配套的教學(xué)資源豐富,包括PPT、教學(xué)大綱、實(shí)驗(yàn)指導(dǎo)書、習(xí)題、模擬考試試卷等,讀者在可以登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊后免費(fèi)下載。本書可以作為應(yīng)用型本科院校、高等職業(yè)院校計(jì)算機(jī)專業(yè)、大數(shù)據(jù)專業(yè)、人工智能專業(yè)的教材,也可以作為相關(guān)培訓(xùn)機(jī)構(gòu)的教材,還可以作為軟件開發(fā)和應(yīng)用從業(yè)人員的參考書。
劉甫迎,教授,碩士研究生導(dǎo)師,2006年獲的國家級教學(xué)名師獎(jiǎng)、成為當(dāng)時(shí)全國高職高專首位獲得該殊榮的教師。2006~2010年,擔(dān)任高職高專計(jì)算機(jī)類專業(yè)教學(xué)指導(dǎo)委委員,曾獲四川省有突出貢獻(xiàn)的優(yōu)秀專家稱號(hào),四川省優(yōu)秀教師稱號(hào)。1982年1月畢業(yè)于電子科技大學(xué)計(jì)算機(jī)工程專業(yè)。1975年至1995年在中國科學(xué)院成都計(jì)算機(jī)應(yīng)用研究所,歷任軟件研究室副主任、副研究員。1985年在加拿大McMaster大學(xué)作中科院公派訪問學(xué)者。作為負(fù)責(zé)人獲國家精品課程一項(xiàng),四川省精品課程二項(xiàng),獲四川省教學(xué)成果一、二等獎(jiǎng)各一項(xiàng)。作為主編2002年獲全國普通高等學(xué)校優(yōu)秀教材二等獎(jiǎng)。1981年獲四川省重大科技成果獎(jiǎng)。發(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ù)的計(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的特性、運(yùn)行原理和生態(tài)環(huán)境 14
1.2.3 Hadoop的企業(yè)級開發(fā)架構(gòu)、技術(shù)與落地應(yīng)用 18
1.3 大數(shù)據(jù)各時(shí)期的熱點(diǎn)與數(shù)據(jù)使用發(fā)展趨勢 21
1.3.1 數(shù)據(jù)架構(gòu)各時(shí)期的演變 22
1.3.2 Hadoop的YARN計(jì)算框架 24
1.3.3 大數(shù)據(jù)的實(shí)時(shí)交互式分析 25
1.3.4 數(shù)據(jù)使用發(fā)展趨勢 25
習(xí)題 29
第二篇 大數(shù)據(jù)存儲(chǔ)篇
第2章 HDFS分布式文件系統(tǒng) 32
2.1 HDFS及其設(shè)計(jì)思路和架構(gòu) 32
2.1.1 HDFS及其設(shè)計(jì)思路 32
2.1.2 HDFS的架構(gòu)與基本存儲(chǔ)單元 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)運(yùn)而生 48
3.1.2 NoSQL的類型 49
3.1.3 NoSQL的三大基石 51
3.2 HBase的設(shè)計(jì)思路與架構(gòu) 54
3.2.1 HBase的系統(tǒng)架構(gòu)與組件 54
3.2.2 HBase的數(shù)據(jù)模型、物理存儲(chǔ)與查找 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的編程實(shí)例 65
3.4 從RDBMS到HBase 67
3.5 為應(yīng)用程序選擇合適的Hadoop數(shù)據(jù)存儲(chǔ)機(jī)制 69
習(xí)題 70
第三篇 大數(shù)據(jù)計(jì)算篇
第4章 MapReduce分布式計(jì)算 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上運(yùn)行MapReduce 80
4.4 MapReduce程序開發(fā)實(shí)例 82
4.5 基于MapReduce的數(shù)據(jù)挖掘應(yīng)用 88
4.5.1 數(shù)據(jù)挖掘與高級分析庫Mahout 88
4.5.2 矩陣乘法 90
4.5.3 相似度計(jì)算 93
習(xí)題 96
第5章 大數(shù)據(jù)的Spark內(nèi)存計(jì)算 99
5.1 Spark概述 99
5.1.1 Spark及其架構(gòu) 99
5.1.2 Spark的特點(diǎn)及性能 100
5.1.3 Spark的基本原理及計(jì)算方法 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實(shí)現(xiàn)與Action實(shí)現(xiàn) 104
5.3 Spark的運(yùn)行模式 105
5.3.1 Spark的程序框架 105
5.3.2 獨(dú)立(Standalone)模式 107
5.3.3 Spark YARN的模式 108
5.4 Spark應(yīng)用程序 109
5.4.1 Scala語言簡介 109
5.4.2 Spark程序設(shè)計(jì) 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ù)的流計(jì)算 129
6.1 流計(jì)算概述 129
6.1.1 無界數(shù)據(jù)及流數(shù)據(jù) 129
6.1.2 流計(jì)算概念 131
6.1.3 流計(jì)算框架 132
6.1.4 流計(jì)算的價(jià)值與應(yīng)用 137
6.2 流計(jì)算處理流程 138
6.2.1 概述 138
6.2.2 數(shù)據(jù)實(shí)時(shí)采集 138
6.2.3 數(shù)據(jù)實(shí)時(shí)計(jì)算 139
6.2.4 實(shí)時(shí)查詢服務(wù) 140
6.3 開源流計(jì)算框架Flink 141
6.3.1 Flink簡介 141
6.3.2 Flink的基本架構(gòu) 142
6.3.3 Flink編程 144
習(xí)題 148
第7章 大數(shù)據(jù)的圖計(jì)算 149
7.1 大數(shù)據(jù)的圖計(jì)算概述 149
7.2 Spark GraphX 150
7.2.1 Spark GraphX簡介 150
7.2.2 Spark GraphX的實(shí)現(xiàn)分析 151
7.2.3 Spark GraphX實(shí)例 152
7.3 Pregel 155
7.3.1 Pregel簡介 155
7.3.2 Pregel圖計(jì)算模型 156
7.3.3 Pregel的體系結(jié)構(gòu) 159
7.3.4 PageRank算法及其實(shí)現(xiàn) 161
習(xí)題 165
第四篇 大數(shù)據(jù)管理、查詢分析及可視篇
第8章 Hadoop的數(shù)據(jù)整合、集群管理與維護(hù) 168
8.1 Hadoop數(shù)據(jù)整合 168
8.1.1 Hadoop計(jì)算環(huán)境中的數(shù)據(jù)整合問題 168
8.1.2 數(shù)據(jù)庫整合工具Sqoop(導(dǎo)入、導(dǎo)出數(shù)據(jù)) 168
8.1.3 Hadoop平臺(tái)內(nèi)部數(shù)據(jù)整合工具——HCatalog 172
8.2 Hadoop集群管理與維護(hù) 175
8.2.1 云計(jì)算平臺(tái)的管理體系 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 實(shí)例 193
9.3.4 Hive與Pig對比 195
9.4 實(shí)時(shí)互動(dòng)的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)計(jì)繪圖工具——R語言 206
10.1.1 R語言概述 206
10.1.2 R軟件資源 207
10.1.3 函數(shù)、運(yùn)算符、數(shù)據(jù)表和數(shù)據(jù)框 208
10.1.4 數(shù)據(jù)存/取及腳本語言 209
10.1.5 繪圖及實(shí)例 210
10.2 可視化技術(shù) 213
10.2.1 可視化技術(shù)及分類 213
10.2.2 入門級工具 214
10.2.3 互動(dòng)圖形用戶界面控制 215
10.2.4 地圖工具 216
10.2.5 可視化設(shè)計(jì)工具 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 機(jī)器學(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 機(jī)器學(xué)習(xí)實(shí)踐 232
11.3 大數(shù)據(jù)深度學(xué)習(xí)實(shí)踐 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 實(shí)驗(yàn)指導(dǎo)書 247
B.1 實(shí)驗(yàn)一:Hadoop平臺(tái)安裝環(huán)境配置(Ambari) 247
B.2 實(shí)驗(yàn)二:Hadoop集群配置及HDFS的使用 252
B.3 實(shí)驗(yàn)三:HBase的安裝與實(shí)例運(yùn)行 257
B.4 實(shí)驗(yàn)四:MapReduce計(jì)算 263
B.5 實(shí)驗(yàn)五:基于MapReduce的大數(shù)據(jù)挖掘?qū)嵗?264
B.6 實(shí)驗(yàn)六:認(rèn)識(shí)Spark 265
B.7 實(shí)驗(yàn)七:Spark編程 268
B.8 實(shí)驗(yàn)八:初步體驗(yàn)大數(shù)據(jù)流計(jì)算框架Flink 270
B.9 實(shí)驗(yàn)九:數(shù)據(jù)庫整合工具Sqoop與查詢分析(Hive、Pig) 273
B.10 實(shí)驗(yàn)十:R語言與可視化技術(shù) 278
B.11 實(shí)驗(yàn)十一:認(rèn)識(shí)深度學(xué)習(xí)(PyCharm、Python、NumPy、 Keras) 280
B.12 實(shí)驗(yàn)十二:深度學(xué)習(xí)實(shí)例 284
附錄C 模擬考試 288
C.1 模擬考試試卷(一) 288
C.2 模擬考試試卷(二) 290
參考文獻(xiàn) 293