本書(shū)分為5篇,包括11章和3個(gè)附錄。大數(shù)據(jù)基礎(chǔ)篇包括第1章(緒論);大數(shù)據(jù)存儲(chǔ)篇包括第2~3章(HDFS分布式文件系統(tǒng)、NoSQL及其HBase分布式數(shù)據(jù)庫(kù)系統(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語(yǔ)言與可視化技術(shù));大數(shù)據(jù)發(fā)展及應(yīng)用篇包括第11章(大數(shù)據(jù)應(yīng)用——人工智能深度學(xué)習(xí))。本書(shū)體現(xiàn)了校際聯(lián)盟、校企合作的建設(shè)成果,將理論與實(shí)踐相結(jié)合,突出實(shí)踐應(yīng)用。本書(shū)配套的教學(xué)資源豐富,包括PPT、教學(xué)大綱、實(shí)驗(yàn)指導(dǎo)書(shū)、習(xí)題、模擬考試試卷等,讀者在可以登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊(cè)后免費(fèi)下載。本書(shū)可以作為應(yīng)用型本科院校、高等職業(yè)院校計(jì)算機(jī)專(zhuān)業(yè)、大數(shù)據(jù)專(zhuān)業(yè)、人工智能專(zhuān)業(yè)的教材,也可以作為相關(guān)培訓(xùn)機(jī)構(gòu)的教材,還可以作為軟件開(kāi)發(fā)和應(yīng)用從業(yè)人員的參考書(shū)。
劉甫迎,教授,碩士研究生導(dǎo)師,2006年獲的國(guó)家級(jí)教學(xué)名師獎(jiǎng)、成為當(dāng)時(shí)全國(guó)高職高專(zhuān)首位獲得該殊榮的教師。2006~2010年,擔(dān)任高職高專(zhuān)計(jì)算機(jī)類(lèi)專(zhuān)業(yè)教學(xué)指導(dǎo)委委員,曾獲四川省有突出貢獻(xiàn)的優(yōu)秀專(zhuān)家稱(chēng)號(hào),四川省優(yōu)秀教師稱(chēng)號(hào)。1982年1月畢業(yè)于電子科技大學(xué)計(jì)算機(jī)工程專(zhuān)業(yè)。1975年至1995年在中國(guó)科學(xué)院成都計(jì)算機(jī)應(yīng)用研究所,歷任軟件研究室副主任、副研究員。1985年在加拿大McMaster大學(xué)作中科院公派訪問(wèn)學(xué)者。作為負(fù)責(zé)人獲國(guó)家精品課程一項(xiàng),四川省精品課程二項(xiàng),獲四川省教學(xué)成果一、二等獎(jiǎng)各一項(xiàng)。作為主編2002年獲全國(guó)普通高等學(xué)校優(yōu)秀教材二等獎(jiǎng)。1981年獲四川省重大科技成果獎(jiǎng)。發(fā)表論文40余篇,主編出版教材、著作21部。獲選普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材兩部。獲選“十三五”職業(yè)教育國(guó)家規(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的由來(lái)與發(fā)展 13
1.2.2 Hadoop的特性、運(yùn)行原理和生態(tài)環(huán)境 14
1.2.3 Hadoop的企業(yè)級(jí)開(kāi)發(fā)架構(gòu)、技術(shù)與落地應(yīng)用 18
1.3 大數(shù)據(jù)各時(shí)期的熱點(diǎn)與數(shù)據(jù)使用發(fā)展趨勢(shì) 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ā)展趨勢(shì) 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文件訪問(wèn)權(quán)限 41
2.3.2 通過(guò)Web瀏覽HDFS文件 42
2.3.3 HDFS的接口(API)使用 44
習(xí)題 46
第3章 NoSQL及其HBase分布式數(shù)據(jù)庫(kù)系統(tǒng) 48
3.1 大數(shù)據(jù)環(huán)境中的NoSQL 48
3.1.1 NoSQL應(yīng)運(yùn)而生 48
3.1.2 NoSQL的類(lèi)型 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ù)讀/寫(xiě)流程 60
3.3 HBase的操作與數(shù)據(jù)管理 61
3.3.1 HBase的Shell操作 61
3.3.2 Java API 與非Java訪問(wèn) 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í)行過(guò)程 74
4.1.2 MapReduce的輸入與輸出 75
4.1.3 MapReduce的Job類(lèi) 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程序開(kāi)發(fā)實(shí)例 82
4.5 基于MapReduce的數(shù)據(jù)挖掘應(yīng)用 88
4.5.1 數(shù)據(jù)挖掘與高級(jí)分析庫(kù)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對(duì)比 102
5.1.5 Spark在國(guó)內(nèi)的現(xiàn)狀以及未來(lái)的展望 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語(yǔ)言簡(jiǎn)介 109
5.4.2 Spark程序設(shè)計(jì) 111
5.5 Spark SQL 116
5.5.1 Spark SQL簡(jiǎn)介 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 無(wú)界數(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 開(kāi)源流計(jì)算框架Flink 141
6.3.1 Flink簡(jiǎn)介 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簡(jiǎn)介 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簡(jiǎn)介 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ù)整合問(wèn)題 168
8.1.2 數(shù)據(jù)庫(kù)整合工具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ù)對(duì)傳統(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對(duì)比 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語(yǔ)言與可視化技術(shù) 206
10.1 開(kāi)源可視化統(tǒng)計(jì)繪圖工具——R語(yǔ)言 206
10.1.1 R語(yǔ)言概述 206
10.1.2 R軟件資源 207
10.1.3 函數(shù)、運(yùn)算符、數(shù)據(jù)表和數(shù)據(jù)框 208
10.1.4 數(shù)據(jù)存/取及腳本語(yǔ)言 209
10.1.5 繪圖及實(shí)例 210
10.2 可視化技術(shù) 213
10.2.1 可視化技術(shù)及分類(lèi) 213
10.2.2 入門(mén)級(jí)工具 214
10.2.3 互動(dòng)圖形用戶界面控制 215
10.2.4 地圖工具 216
10.2.5 可視化設(shè)計(jì)工具 216
10.2.6 專(zhuān)家級(jí)可視化分析工具 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入門(mén) 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)書(shū) 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ù)庫(kù)整合工具Sqoop與查詢分析(Hive、Pig) 273
B.10 實(shí)驗(yàn)十:R語(yǔ)言與可視化技術(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