本書分為5篇,包括11章和3個附錄。大數(shù)據(jù)基礎篇包括第1章(緒論);大數(shù)據(jù)存儲篇包括第2~3章(HDFS分布式文件系統(tǒng)、NoSQL及其HBase分布式數(shù)據(jù)庫系統(tǒng));大數(shù)據(jù)計算篇包括第4~7章(MapReduce分布式計算、大數(shù)據(jù)的Spark內存計算、大數(shù)據(jù)的流計算、大數(shù)據(jù)的圖計算);大數(shù)據(jù)管理、查詢分析及可視篇包括第8~10章(Hadoop的數(shù)據(jù)整合、集群管理與維護,大數(shù)據(jù)的查詢分析技術,R語言與可視化技術);大數(shù)據(jù)發(fā)展及應用篇包括第11章(大數(shù)據(jù)應用——人工智能深度學習)。本書體現(xiàn)了校際聯(lián)盟、校企合作的建設成果,將理論與實踐相結合,突出實踐應用。本書配套的教學資源豐富,包括PPT、教學大綱、實驗指導書、習題、模擬考試試卷等,讀者在可以登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊后免費下載。本書可以作為應用型本科院校、高等職業(yè)院校計算機專業(yè)、大數(shù)據(jù)專業(yè)、人工智能專業(yè)的教材,也可以作為相關培訓機構的教材,還可以作為軟件開發(fā)和應用從業(yè)人員的參考書。
劉甫迎,教授,碩士研究生導師,2006年獲的國家級教學名師獎、成為當時全國高職高專首位獲得該殊榮的教師。2006~2010年,擔任高職高專計算機類專業(yè)教學指導委委員,曾獲四川省有突出貢獻的優(yōu)秀專家稱號,四川省優(yōu)秀教師稱號。1982年1月畢業(yè)于電子科技大學計算機工程專業(yè)。1975年至1995年在中國科學院成都計算機應用研究所,歷任軟件研究室副主任、副研究員。1985年在加拿大McMaster大學作中科院公派訪問學者。作為負責人獲國家精品課程一項,四川省精品課程二項,獲四川省教學成果一、二等獎各一項。作為主編2002年獲全國普通高等學校優(yōu)秀教材二等獎。1981年獲四川省重大科技成果獎。發(fā)表論文40余篇,主編出版教材、著作21部。獲選普通高等教育“十一五”國家級規(guī)劃教材兩部。獲選“十三五”職業(yè)教育國家規(guī)劃教材一部。
目錄
第一篇 大數(shù)據(jù)基礎篇
第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ù)的關鍵技術 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ā)架構、技術與落地應用 18
1.3 大數(shù)據(jù)各時期的熱點與數(shù)據(jù)使用發(fā)展趨勢 21
1.3.1 數(shù)據(jù)架構各時期的演變 22
1.3.2 Hadoop的YARN計算框架 24
1.3.3 大數(shù)據(jù)的實時交互式分析 25
1.3.4 數(shù)據(jù)使用發(fā)展趨勢 25
習題 29
第二篇 大數(shù)據(jù)存儲篇
第2章 HDFS分布式文件系統(tǒng) 32
2.1 HDFS及其設計思路和架構 32
2.1.1 HDFS及其設計思路 32
2.1.2 HDFS的架構與基本存儲單元 33
2.1.3 HDFS的存/取流程 34
2.2 HDFS Shell的基本操作 38
2.3 HDFS的命令行操作 41
2.3.1 HDFS文件訪問權限 41
2.3.2 通過Web瀏覽HDFS文件 42
2.3.3 HDFS的接口(API)使用 44
習題 46
第3章 NoSQL及其HBase分布式數(shù)據(jù)庫系統(tǒng) 48
3.1 大數(shù)據(jù)環(huán)境中的NoSQL 48
3.1.1 NoSQL應運而生 48
3.1.2 NoSQL的類型 49
3.1.3 NoSQL的三大基石 51
3.2 HBase的設計思路與架構 54
3.2.1 HBase的系統(tǒng)架構與組件 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 為應用程序選擇合適的Hadoop數(shù)據(jù)存儲機制 69
習題 70
第三篇 大數(shù)據(jù)計算篇
第4章 MapReduce分布式計算 74
4.1 MapReduce的架構與源碼分析 74
4.1.1 MapReduce的架構與執(zhí)行過程 74
4.1.2 MapReduce的輸入與輸出 75
4.1.3 MapReduce的Job類 78
4.2 MapReduce任務的異常處理與失敗處理 79
4.2.1 MapReduce任務的異常處理方式 79
4.2.2 MapReduce任務的失敗處理方式 80
4.3 在HBase上運行MapReduce 80
4.4 MapReduce程序開發(fā)實例 82
4.5 基于MapReduce的數(shù)據(jù)挖掘應用 88
4.5.1 數(shù)據(jù)挖掘與高級分析庫Mahout 88
4.5.2 矩陣乘法 90
4.5.3 相似度計算 93
習題 96
第5章 大數(shù)據(jù)的Spark內存計算 99
5.1 Spark概述 99
5.1.1 Spark及其架構 99
5.1.2 Spark的特點及性能 100
5.1.3 Spark的基本原理及計算方法 101
5.1.4 Spark與MapReduce、Hive對比 102
5.1.5 Spark在國內的現(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應用程序 109
5.4.1 Scala語言簡介 109
5.4.2 Spark程序設計 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
習題 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 流計算的價值與應用 137
6.2 流計算處理流程 138
6.2.1 概述 138
6.2.2 數(shù)據(jù)實時采集 138
6.2.3 數(shù)據(jù)實時計算 139
6.2.4 實時查詢服務 140
6.3 開源流計算框架Flink 141
6.3.1 Flink簡介 141
6.3.2 Flink的基本架構 142
6.3.3 Flink編程 144
習題 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的體系結構 159
7.3.4 PageRank算法及其實現(xiàn) 161
習題 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(導入、導出數(shù)據(jù)) 168
8.1.3 Hadoop平臺內部數(shù)據(jù)整合工具——HCatalog 172
8.2 Hadoop集群管理與維護 175
8.2.1 云計算平臺的管理體系 175
8.2.2 集群中的配置管理與協(xié)調者——ZooKeeper 177
8.2.3 Hadoop集群部署與監(jiān)控集成工具——Ambari 179
8.2.4 基于Kerberos的Hadoop安全管理 181
8.2.5 Hadoop集群管理工具分析 183
習題 184
第9章 大數(shù)據(jù)的查詢分析技術 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
習題 205
第10章 R語言與可視化技術 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 可視化技術 213
10.2.1 可視化技術及分類 213
10.2.2 入門級工具 214
10.2.3 互動圖形用戶界面控制 215
10.2.4 地圖工具 216
10.2.5 可視化設計工具 216
10.2.6 專家級可視化分析工具 217
習題 218
第五篇 大數(shù)據(jù)發(fā)展及應用篇
第11章 大數(shù)據(jù)應用——人工智能深度學習 220
11.1 理解大數(shù)據(jù)深度學習 220
11.1.1 機器學習、感知器與大數(shù)據(jù)深度學習 220
11.1.2 人工神經(jīng)網(wǎng)絡與深度學習 221
11.2 深度學習的編程基礎 222
11.2.1 環(huán)境配置 222
11.2.2 Python入門 227
11.2.3 NumPy 229
11.2.4 機器學習實踐 232
11.3 大數(shù)據(jù)深度學習實踐 240
11.3.1 卷積神經(jīng)網(wǎng)絡 240
11.3.2 深度學習在圖像中的應用 240
習題 245
附錄A 《大數(shù)據(jù)原理與技術》教學大綱 246
附錄B 實驗指導書 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ù)挖掘實例 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語言與可視化技術 278
B.11 實驗十一:認識深度學習(PyCharm、Python、NumPy、 Keras) 280
B.12 實驗十二:深度學習實例 284
附錄C 模擬考試 288
C.1 模擬考試試卷(一) 288
C.2 模擬考試試卷(二) 290
參考文獻 293