本書圍繞互聯(lián)網(wǎng)重大的技術(shù)革命:云計(jì)算、大數(shù)據(jù)進(jìn)行闡述。云計(jì)算環(huán)境下大數(shù)據(jù)處理構(gòu)建是國(guó)民經(jīng)濟(jì)發(fā)展的信息基礎(chǔ)設(shè)施,發(fā)展自主的云計(jì)算核心技術(shù),擁有自己的信息基礎(chǔ)設(shè)施,當(dāng)前正處于重要的機(jī)遇期。
本書重點(diǎn)在大數(shù)據(jù)與云計(jì)算的融合,給出了大數(shù)據(jù)與云計(jì)算的一些基本概念,并以Spark為開發(fā)工具,全面講述云環(huán)境下的Spark大數(shù)據(jù)技術(shù)部署與典型案例算法實(shí)現(xiàn),*后介紹了國(guó)內(nèi)經(jīng)典Spark大數(shù)據(jù)與云計(jì)算融合的架構(gòu)與算法。
本書適合云計(jì)算環(huán)境下Spark大數(shù)據(jù)技術(shù)人員、Spark MLlib機(jī)器學(xué)習(xí)技術(shù)人員,也適合高等院校和培訓(xùn)機(jī)構(gòu)相關(guān)專業(yè)的師生教學(xué)參考。
以云計(jì)算與大數(shù)據(jù)融合的視角闡述了云計(jì)算環(huán)境下Spark大數(shù)據(jù)處理與相應(yīng)的算法實(shí)現(xiàn)結(jié)合經(jīng)典案例,詳解云計(jì)算環(huán)境下Spark大數(shù)據(jù)處理生態(tài)圈,包括系統(tǒng)結(jié)構(gòu)、大數(shù)據(jù)存儲(chǔ)、批處理、流計(jì)算、交互式數(shù)據(jù)分析、并行機(jī)器學(xué)習(xí)架構(gòu)與算法等技術(shù)掌握云計(jì)算環(huán)境下Spark大數(shù)據(jù)處理的架構(gòu)搭建和算法實(shí)現(xiàn)過(guò)程等關(guān)鍵技術(shù),擴(kuò)展大數(shù)據(jù)從業(yè)人員的理論與實(shí)踐能力
鄧立國(guó),東北大學(xué)計(jì)算機(jī)應(yīng)用博士畢業(yè)。2005年開始在沈陽(yáng)師范大學(xué)軟件學(xué)院、教育技術(shù)學(xué)院任教,主要研究方向:數(shù)據(jù)挖掘、知識(shí)工程、大數(shù)據(jù)處理、云計(jì)算、分布式計(jì)算等。以第一作者發(fā)表學(xué)術(shù)論文30多篇(26篇EI),主編教材 1 部,主持科研課題6項(xiàng),經(jīng)費(fèi)10余萬(wàn)元,多次獲得校級(jí)科研優(yōu)秀獎(jiǎng),作為九三社員提出的智慧城市提案被市政府采納,研究成果被教育廳等單位采用。
第1章 大數(shù)據(jù)處理概述 1
1.1 大數(shù)據(jù)處理技術(shù)概述 1
1.1.1
什么是大數(shù)據(jù) 1
1.1.2
大數(shù)據(jù)來(lái)源 2
1.1.3
大數(shù)據(jù)應(yīng)用價(jià)值 3
1.1.4
大數(shù)據(jù)技術(shù)特點(diǎn)和研究?jī)?nèi)容 4
1.1.5
大數(shù)據(jù)計(jì)算與系統(tǒng) 5
1.2 數(shù)據(jù)挖掘及其相關(guān)領(lǐng)域應(yīng)用
9
1.2.1
數(shù)據(jù)挖掘概述 9
1.2.2
數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí) 11
1.2.3
數(shù)據(jù)挖掘與數(shù)據(jù)庫(kù) 11
1.2.4
數(shù)據(jù)挖掘與統(tǒng)計(jì)學(xué) 12
1.2.5
數(shù)據(jù)挖掘與決策支持 12
1.2.6
數(shù)據(jù)挖掘與云計(jì)算 13
1.3 大數(shù)據(jù)應(yīng)用 13
1.3.1
大數(shù)據(jù)應(yīng)用案例 13
1.3.2
大數(shù)據(jù)應(yīng)用場(chǎng)景 14
1.3.3
大數(shù)據(jù)應(yīng)用平臺(tái)方案案例 21
1.4 并行計(jì)算簡(jiǎn)介 23
1.5
Hadoop介紹 24
1.6 本章小結(jié) 26
第2章 云計(jì)算時(shí)代 27
2.1 云計(jì)算概述 27
2.1.1
云計(jì)算概念 27
2.1.2
云計(jì)算發(fā)展簡(jiǎn)史 28
2.1.3
云計(jì)算實(shí)現(xiàn)機(jī)制 30
2.1.4
云計(jì)算服務(wù)形式 31
2.1.5
云計(jì)算時(shí)代的數(shù)據(jù)庫(kù)NoSQL 32
2.2 云計(jì)算發(fā)展動(dòng)力源泉 34
2.3 云計(jì)算技術(shù)分析 34
2.3.1
編程模式 34
2.3.2
海量數(shù)據(jù)云存儲(chǔ)技術(shù) 37
2.3.3
海量數(shù)據(jù)管理技術(shù) 38
2.3.4
虛擬化技術(shù) 39
2.3.5
分布式計(jì)算 41
2.3.6
云監(jiān)測(cè)技術(shù) 41
2.4 并行計(jì)算與云計(jì)算關(guān)系 43
2.4.1
并行計(jì)算與云計(jì)算 44
2.4.2
MapReduce 45
2.5 云計(jì)算發(fā)展優(yōu)勢(shì) 51
2.6 向云實(shí)現(xiàn)遷移 53
2.7 本章小結(jié) 55
第3章 大數(shù)據(jù)與云計(jì)算關(guān)系 56
3.1 云計(jì)算與大數(shù)據(jù)關(guān)系 56
3.2 大數(shù)據(jù)與云計(jì)算的融合是認(rèn)識(shí)世界的新工具 57
3.3 大數(shù)據(jù)隱私保護(hù)是大數(shù)據(jù)云快速發(fā)展和運(yùn)用的重要前提 59
3.3.1
云計(jì)算的安全隱私 60
3.3.2
大數(shù)據(jù)的安全隱私 60
3.4 大數(shù)據(jù)成就云計(jì)算價(jià)值 62
3.5 數(shù)據(jù)向云計(jì)算遷移 63
3.6 大數(shù)據(jù)清洗 64
3.7 云計(jì)算時(shí)代的數(shù)據(jù)集成技術(shù)
66
3.8 云推薦 67
3.9 本章小結(jié) 68
第4章 Spark大數(shù)據(jù)處理基礎(chǔ) 69
4.1
Spark大數(shù)據(jù)處理技術(shù) 69
4.1.1
Spark系統(tǒng)概述 69
4.1.2
Spark生態(tài)系統(tǒng)BDAS(伯利克分析棧) 70
4.1.3
Spark的用武之地 71
4.1.4
Spark大數(shù)據(jù)處理框架 72
4.1.5
Spark運(yùn)行模式分類及術(shù)語(yǔ) 73
4.2
Spark 2.0.0安裝配置 74
4.2.1
在Linux集群上安裝與配置Spark 74
4.2.2
Spark Shell 81
4.2.3
Spark RDD 88
4.2.4
Shark(Hive on Spark大型的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)) 91
4.3
Spark配置 92
4.3.1
環(huán)境變量 92
4.3.2
系統(tǒng)屬性 93
4.3.3
配置日志 95
4.3.4
Spark 硬件配置 95
4.4
Spark模式部署概述 96
4.5
Spark Streaming實(shí)時(shí)計(jì)算框架 98
4.6
Spark SQL 查詢、DataFrames分布式數(shù)據(jù)集和Datasets API 101
4.7
Spark起始點(diǎn) 102
4.7.1
SparkSession 102
4.7.2
SQLContext 103
4.7.3
創(chuàng)建DataFrame 104
4.7.4
無(wú)類型的Dataset操作(aka DataFrame Operations) 105
4.7.5
編程執(zhí)行SQL查詢語(yǔ)句 111
4.7.6
創(chuàng)建Dataset 112
4.7.7
和RDD互操作 115
4.8
Spark數(shù)據(jù)源 125
4.8.1
通用加載/保存函數(shù) 125
4.8.2
Parquet文件 127
4.8.3
JSON數(shù)據(jù)集 135
4.8.4
Hive表 136
4.8.5
用JDBC連接其他數(shù)據(jù)庫(kù) 143
4.9
Spark性能調(diào)優(yōu) 144
4.10
分布式SQL引擎 145
4.11
本章小結(jié) 146
第5章 Spark MLlib機(jī)器學(xué)習(xí)算法實(shí)現(xiàn) 147
5.1
Spark MLlib基礎(chǔ) 147
5.1.1
機(jī)器學(xué)習(xí) 148
5.1.2
機(jī)器學(xué)習(xí)分類 148
5.1.3
機(jī)器學(xué)習(xí)常見算法 149
5.1.4
Spark MLlib機(jī)器學(xué)習(xí)庫(kù) 152
5.1.5
基于Spark常用的算法舉例分析 156
5.2
Spark MLlib矩陣向量 159
5.2.1
Breeze創(chuàng)建函數(shù) 159
5.2.2
Breeze元素訪問(wèn) 161
5.2.3
Breeze元素操作 162
5.2.4
Breeze數(shù)值計(jì)算函數(shù) 165
5.2.5
Breeze求和函數(shù) 166
5.2.6
Breeze布爾函數(shù) 167
5.2.7
Breeze線性代數(shù)函數(shù) 168
5.2.8
Breeze取整函數(shù) 169
5.2.9
Breeze三角函數(shù) 170
5.2.10
BLAS向量運(yùn)算 170
5.3
Spark MLlib線性回歸算法 171
5.3.1
線性回歸算法理論基礎(chǔ) 171
5.3.2
線性回歸算法 172
5.3.3
Spark MLlib Linear Regression源碼分析 174
5.4
Spark MLlib邏輯回歸算法 183
5.4.1
邏輯回歸算法 184
5.4.2
Spark MLlib Logistic Regression源碼分析 186
5.5
Spark MLlib樸素貝葉斯分類算法 199
5.5.1
樸素貝葉斯分類算法 200
5.5.2
樸素貝葉斯Spark MLlib源碼 203
5.6
Spark MLlib決策樹算法 217
5.6.1
決策樹算法 217
5.6.2
決策樹實(shí)例 220
5.7
Spark MLlib KMeans聚類算法 227
5.7.1
KMeans聚類算法 227
5.7.2
Spark MLlib KMeans源碼分析 228
5.7.3
MLlib KMeans實(shí)例 235
5.8
Spark MLlib FPGrowth關(guān)聯(lián)規(guī)則算法 236
5.8.1
基本概念 236
5.8.2
FPGrowth算法 237
5.8.3
Spark MLlib FPGrowth源碼分析 241
5.9
Spark MLlib協(xié)同過(guò)濾推薦算法 244
5.9.1
協(xié)同過(guò)濾概念 244
5.9.2
相似度度量 245
5.9.3
協(xié)同過(guò)濾算法按照數(shù)據(jù)使用分類 246
5.9.4
Spark MLlib協(xié)同過(guò)濾算法實(shí)現(xiàn) 247
5.9.5
Spark MLlib電影評(píng)級(jí)推薦 252
5.10
Spark MLlib神經(jīng)網(wǎng)絡(luò)算法 261
5.11
本章小結(jié) 264
第6章 Spark大數(shù)據(jù)架構(gòu)系統(tǒng)部署 265
6.1 大數(shù)據(jù)架構(gòu)介紹 265
6.2 典型的商務(wù)使用場(chǎng)景 266
6.2.1
客戶行為分析 266
6.2.2
情緒分析 267
6.2.3
CRM Onboarding 267
6.2.4
預(yù)測(cè) 268
6.3
Spark三種分布式部署模式 268
6.3.1
Standalone模式 268
6.3.2
Spark On Mesos 模式 269
6.3.3
Spark On YARN模式 269
6.4 創(chuàng)建大數(shù)據(jù)架構(gòu) 270
6.4.1
數(shù)據(jù)采集 270
6.4.2
數(shù)據(jù)接入 271
6.4.3
Spark流式計(jì)算 273
6.4.4
數(shù)據(jù)輸出 274
6.4.5
日志攝取 274
6.4.6
機(jī)器學(xué)習(xí) 277
6.4.7
處理引擎 277
6.5
Spark單個(gè)機(jī)器集群部署 278
6.6 本章小結(jié) 280
第7章 Spark大數(shù)據(jù)處理案例分析 282
7.1
Spark on Amazon EMR 282
7.1.1
Amazon EMR 282
7.1.2
配置 Spark 283
7.1.3
以交互方式或批處理模式使用 Spark 284
7.1.4
使用 Spark 創(chuàng)建集群 285
7.1.5
訪問(wèn) Spark 外殼 286
7.1.6
添加 Spark 287
7.2
Spark在AWSKrux的應(yīng)用 289
7.3
Spark在商業(yè)網(wǎng)站中的應(yīng)用 290
7.4
Spark在Yahoo!的應(yīng)用 291
7.5
Spark在Amazon EC2上運(yùn)行 292
7.6 淘寶應(yīng)用Spark on
YARN架構(gòu) 296
7.7 騰訊云大數(shù)據(jù)解決方案
297
7.8 雅虎開源TensorFlowOnSpark
298
7.9 阿里云E-MapReduce
301
7.10
SequoiaDB Spark 打造一體化
大數(shù)據(jù)平臺(tái) 304
7.11
本章小結(jié) 305
第8章 大數(shù)據(jù)發(fā)展展望 306
8.1 大數(shù)據(jù)未來(lái)發(fā)展趨勢(shì) 306
8.2 大數(shù)據(jù)給人類帶來(lái)的認(rèn)知沖擊
307
8.3 未來(lái)大數(shù)據(jù)研究突破的技術(shù)問(wèn)題 308
8.4 本章小結(jié) 309
附錄 Spark MLlib神經(jīng)網(wǎng)絡(luò)算法 312
參考文獻(xiàn) 338