Spark零基礎實戰詳細解密了Spark的高可用性、核心架構、運行機制等內容。
基本介紹
- 書名:Spark零基礎實戰
- 作者:王家林、孔祥瑞 等
- ISBN:9787122280176
- 頁數:307
- 定價:68
- 出版社:化學工業出版社
- 出版時間:2016.11
- 開本:16
內容簡介,讀者對象,書籍目錄,
內容簡介
Spark是業界公認的近幾年發展最快、最受關注度的一體化多元化的大數據計算技術,可以同時滿足不同業務場景和不同數據規模的大數據計算的需要。
本書首先通過代碼實戰的方式對學習Spark前必須掌握的Scala內容進行講解並結合Spark源碼的閱讀來幫助讀者快速學習Scala函式式編程與面向對象完美結合的編程藝術,接著對Hadoop和Spark集群安裝部署以及Spark在不同集成開發環境的開發實戰作出了詳細的講解,然後基於大量的實戰案例來講解Spark核心RDD編程並深度解密RDD的密碼,並且通過實戰的方式詳解了TopN在Spark RDD中的實現,為了讓讀者徹底了解Spark,本書用了大量的篇幅詳細解密了Spark的高可用性、核心架構、運行機制等內容。
讀者對象
Spark零基礎實戰這本書定位於零基礎的學員,也可以作為有一定大數據Hadoop經驗的從業者以及對大數據非常感興趣的學生的第一本Spark入門書籍。
書籍目錄
第1章Scala光速入門1
1.1Scala基礎與語法入門實戰1
1.1.1Scala基本數據類型1
1.1.2Scala變數聲明2
1.1.3算術操作符介紹2
1.1.4條件語句5
1.1.5循環6
1.1.6異常控制8
1.2Scala中Array、Map等數據結構實戰10
1.2.1定長數組和可變數組10
1.2.2數組常用算法10
1.2.3Map映射11
1.2.4Tuple元組12
1.2.5List列表12
1.2.6Set集合14
1.2.7Scala集合方法大全15
1.2.8綜合案例及Spark源碼解析17
1.3小結18
第2章Scala面向對象徹底精通及Spark源碼閱讀19
2.1Scala面向對象詳解19
2.1.1Scala中的class、object初介紹19
2.1.2主構造器與輔助構造器22
2.1.3類的欄位和方法徹底精通23
2.1.4抽象類、接口的實戰詳解24
2.1.5Scala Option類詳解26
2.1.6object的提取器27
2.1.7Scala的樣例類實戰詳解27
2.2Scala綜合案例及Spark源碼解析28
2.3小結29
第3章Scala函式式編程徹底精通及Spark源碼閱讀30
3.1函式式編程概述30
3.2函式定義35
3.3函式式對象37
3.4本地函式41
3.5頭等函式42
3.6函式字面量和占位符43
3.6.1Scala占位符43
3.6.2函式字面量43
3.6.3部分套用函式44
3.7閉包和Curring46
3.8高階函式49
3.9從Spark源碼角度解析Scala函式式編程55
3.10小結57
第4章Scala模式匹配、類型系統徹底精通與Spark源碼閱讀58
4.1模式匹配語法58
4.2模式匹配實戰59
4.2.1模式匹配基礎實戰59
4.2.2數組、元祖實戰59
4.2.3Option實戰60
4.2.4提取器60
4.2.5Scala異常處理與模式匹配61
4.2.6sealed密封類62
4.3類型系統62
4.3.1泛型62
4.3.2邊界63
4.3.3協變與逆變63
4.4Spark源碼閱讀64
4.5小結65
第5章Scala隱式轉換等徹底精通及Spark源碼閱讀66
5.1隱式轉換66
5.1.1隱式轉換的使用條件66
5.1.2隱式轉換實例66
5.2隱式類68
5.3隱式參數詳解68
5.4隱式值69
5.5Spark源碼閱讀解析69
5.6小結70
第6章並發編程及Spark源碼閱讀71
6.1並發編程徹底詳解71
6.1.1actor工作模型71
6.1.2傳送訊息72
6.1.3回復訊息74
6.1.4actor創建74
6.1.5用上下文context創建actor75
6.1.6用ActorSystem創建actor76
6.1.7用匿名類創建actor76
6.1.8actor生命周期77
6.1.9終止actor78
6.1.10actor實戰80
6.2小結82
第7章源碼編譯83
7.1Windows下源碼編譯83
7.1.1下載Spark源碼83
7.1.2Sbt方式84
7.1.3Maven方式89
7.1.4需要注意的幾個問題90
7.2Ubuntu下源碼編譯92
7.2.1下載Spark源碼93
7.2.2Sbt方式95
7.2.3Maven方式96
7.2.4makedistribution.sh腳本方式98
7.2.5需要注意的幾個問題99
7.3小結100
第8章Hadoop分散式集群環境搭建101
8.1搭建Hadoop單機環境101
8.1.1安裝軟體下載101
8.1.2Ubuntu系統的安裝101
8.1.3Hadoop集群的安裝和設定109
8.1.4Hadoop單機模式下運行WordCount示例113
8.2Hadoop偽分散式環境115
8.2.1Hadoop偽分散式環境搭建115
8.2.2Hadoop偽分散式模式下運行WordCount示例117
8.3Hadoop完全分散式環境120
8.3.1Hadoop完全分散式環境搭建120
8.3.2Hadoop完全分散式模式下運行WordCount示例123
8.4小結125
第9章精通Spark集群搭建與測試127
9.1Spark集群所需軟體的安裝127
9.1.1安裝JDK127
9.1.2安裝Scala130
9.2Spark環境搭建132
9.2.1Spark單機與單機偽分散式環境132
9.2.2Spark Standalone集群環境搭建與配置135
9.2.3Spark Standalone環境搭建的驗證136
9.3Spark集群的測試137
9.3.1通過sparkshell腳本進行測試137
9.3.2通過sparksubmit腳本進行測試145
9.4小結145
第10章Scala IDE開發Spark程式實戰解析146
10.1Scala IDE安裝146
10.1.1Ubuntu系統下安裝146
10.1.2Windows系統下安裝147
10.2ScalaIDE開發重點步驟詳解148
10.3Wordcount創建實戰152
10.4Spark源碼導入Scala IDE154
10.5小結164
第11章實戰詳解IntelliJ IDEA下的Spark程式開發165
11.1IDEA安裝165
11.1.1Ubuntu系統下安裝165
11.1.2Windows系統下安裝167
11.2IDEA開發重點步驟詳解168
11.2.1環境配置168
11.2.2項目創建170
11.2.3Spark包引入174
11.3Wordcount創建實戰174
11.4IDEA導入Spark源碼177
11.5小結183
第12章Spark簡介184
12.1Spark發展歷史184
12.2Spark在國內外的使用185
12.3Spark生態系統簡介188
12.3.1Hadoop生態系統189
12.3.2BDAS生態系統195
12.3.3其他199
12.4小結199
第13章Spark RDD解密200
13.1淺談RDD200
13.2創建RDD的幾種常用方式204
13.3Spark RDD API解析及其實戰206
13.4RDD的持久化解析及其實戰217
13.5小結218
第14章Spark程式之分組TopN開發實戰解析219
14.1分組TopN動手實戰219
14.1.1Java之分組TopN開發實戰219
14.1.2Scala之分組TopN開發實戰226
14.2Scala之分組TopN運行原理解密232
14.2.1textFile232
14.2.2map234
14.2.3groupByKey234
14.3小結237
第15章MasterHA工作原理解密238
15.1Spark需要Master HA的原因238
15.2Spark Master HA的實現238
15.3Spark和ZOOKEEPER的協同工作機制240
15.4ZOOKEEPER實現套用實戰242
15.5小結247
第16章Spark核心架構解密248
16.1Spark的運行過程248
16.1.1SparkContext的創建過程248
16.1.2Driver的註冊過程249
16.1.3Worker中任務的執行254
16.1.4任務的調度過程255
16.1.5Job執行結果的產生257
16.2小結259
第17章Spark運行原理實戰解析260
17.1用戶提交程式Driver端解析260
17.1.1SparkConf解析263
17.1.2SparkContext解析264
17.1.3DAGScheduler創建271
17.1.4TaskScheduler創建272
17.1.5SchedulerBackend創建273
17.1.6Stage劃分與TaskSet生成274
17.1.7任務提交280
17.2Spark運行架構解析283
17.2.1Spark基本組件介紹283
17.2.2Spark的運行邏輯285
17.3Spark在不同集群上的運行架構291
17.3.1Spark在Standalone模式下的運行架構291
17.3.2Spark on yarn的運行架構294
17.3.3Spark在不同模式下的套用實戰297
17.4Spark運行架構的實戰解析300
17.5小結307
1.1Scala基礎與語法入門實戰1
1.1.1Scala基本數據類型1
1.1.2Scala變數聲明2
1.1.3算術操作符介紹2
1.1.4條件語句5
1.1.5循環6
1.1.6異常控制8
1.2Scala中Array、Map等數據結構實戰10
1.2.1定長數組和可變數組10
1.2.2數組常用算法10
1.2.3Map映射11
1.2.4Tuple元組12
1.2.5List列表12
1.2.6Set集合14
1.2.7Scala集合方法大全15
1.2.8綜合案例及Spark源碼解析17
1.3小結18
第2章Scala面向對象徹底精通及Spark源碼閱讀19
2.1Scala面向對象詳解19
2.1.1Scala中的class、object初介紹19
2.1.2主構造器與輔助構造器22
2.1.3類的欄位和方法徹底精通23
2.1.4抽象類、接口的實戰詳解24
2.1.5Scala Option類詳解26
2.1.6object的提取器27
2.1.7Scala的樣例類實戰詳解27
2.2Scala綜合案例及Spark源碼解析28
2.3小結29
第3章Scala函式式編程徹底精通及Spark源碼閱讀30
3.1函式式編程概述30
3.2函式定義35
3.3函式式對象37
3.4本地函式41
3.5頭等函式42
3.6函式字面量和占位符43
3.6.1Scala占位符43
3.6.2函式字面量43
3.6.3部分套用函式44
3.7閉包和Curring46
3.8高階函式49
3.9從Spark源碼角度解析Scala函式式編程55
3.10小結57
第4章Scala模式匹配、類型系統徹底精通與Spark源碼閱讀58
4.1模式匹配語法58
4.2模式匹配實戰59
4.2.1模式匹配基礎實戰59
4.2.2數組、元祖實戰59
4.2.3Option實戰60
4.2.4提取器60
4.2.5Scala異常處理與模式匹配61
4.2.6sealed密封類62
4.3類型系統62
4.3.1泛型62
4.3.2邊界63
4.3.3協變與逆變63
4.4Spark源碼閱讀64
4.5小結65
第5章Scala隱式轉換等徹底精通及Spark源碼閱讀66
5.1隱式轉換66
5.1.1隱式轉換的使用條件66
5.1.2隱式轉換實例66
5.2隱式類68
5.3隱式參數詳解68
5.4隱式值69
5.5Spark源碼閱讀解析69
5.6小結70
第6章並發編程及Spark源碼閱讀71
6.1並發編程徹底詳解71
6.1.1actor工作模型71
6.1.2傳送訊息72
6.1.3回復訊息74
6.1.4actor創建74
6.1.5用上下文context創建actor75
6.1.6用ActorSystem創建actor76
6.1.7用匿名類創建actor76
6.1.8actor生命周期77
6.1.9終止actor78
6.1.10actor實戰80
6.2小結82
第7章源碼編譯83
7.1Windows下源碼編譯83
7.1.1下載Spark源碼83
7.1.2Sbt方式84
7.1.3Maven方式89
7.1.4需要注意的幾個問題90
7.2Ubuntu下源碼編譯92
7.2.1下載Spark源碼93
7.2.2Sbt方式95
7.2.3Maven方式96
7.2.4makedistribution.sh腳本方式98
7.2.5需要注意的幾個問題99
7.3小結100
第8章Hadoop分散式集群環境搭建101
8.1搭建Hadoop單機環境101
8.1.1安裝軟體下載101
8.1.2Ubuntu系統的安裝101
8.1.3Hadoop集群的安裝和設定109
8.1.4Hadoop單機模式下運行WordCount示例113
8.2Hadoop偽分散式環境115
8.2.1Hadoop偽分散式環境搭建115
8.2.2Hadoop偽分散式模式下運行WordCount示例117
8.3Hadoop完全分散式環境120
8.3.1Hadoop完全分散式環境搭建120
8.3.2Hadoop完全分散式模式下運行WordCount示例123
8.4小結125
第9章精通Spark集群搭建與測試127
9.1Spark集群所需軟體的安裝127
9.1.1安裝JDK127
9.1.2安裝Scala130
9.2Spark環境搭建132
9.2.1Spark單機與單機偽分散式環境132
9.2.2Spark Standalone集群環境搭建與配置135
9.2.3Spark Standalone環境搭建的驗證136
9.3Spark集群的測試137
9.3.1通過sparkshell腳本進行測試137
9.3.2通過sparksubmit腳本進行測試145
9.4小結145
第10章Scala IDE開發Spark程式實戰解析146
10.1Scala IDE安裝146
10.1.1Ubuntu系統下安裝146
10.1.2Windows系統下安裝147
10.2ScalaIDE開發重點步驟詳解148
10.3Wordcount創建實戰152
10.4Spark源碼導入Scala IDE154
10.5小結164
第11章實戰詳解IntelliJ IDEA下的Spark程式開發165
11.1IDEA安裝165
11.1.1Ubuntu系統下安裝165
11.1.2Windows系統下安裝167
11.2IDEA開發重點步驟詳解168
11.2.1環境配置168
11.2.2項目創建170
11.2.3Spark包引入174
11.3Wordcount創建實戰174
11.4IDEA導入Spark源碼177
11.5小結183
第12章Spark簡介184
12.1Spark發展歷史184
12.2Spark在國內外的使用185
12.3Spark生態系統簡介188
12.3.1Hadoop生態系統189
12.3.2BDAS生態系統195
12.3.3其他199
12.4小結199
第13章Spark RDD解密200
13.1淺談RDD200
13.2創建RDD的幾種常用方式204
13.3Spark RDD API解析及其實戰206
13.4RDD的持久化解析及其實戰217
13.5小結218
第14章Spark程式之分組TopN開發實戰解析219
14.1分組TopN動手實戰219
14.1.1Java之分組TopN開發實戰219
14.1.2Scala之分組TopN開發實戰226
14.2Scala之分組TopN運行原理解密232
14.2.1textFile232
14.2.2map234
14.2.3groupByKey234
14.3小結237
第15章MasterHA工作原理解密238
15.1Spark需要Master HA的原因238
15.2Spark Master HA的實現238
15.3Spark和ZOOKEEPER的協同工作機制240
15.4ZOOKEEPER實現套用實戰242
15.5小結247
第16章Spark核心架構解密248
16.1Spark的運行過程248
16.1.1SparkContext的創建過程248
16.1.2Driver的註冊過程249
16.1.3Worker中任務的執行254
16.1.4任務的調度過程255
16.1.5Job執行結果的產生257
16.2小結259
第17章Spark運行原理實戰解析260
17.1用戶提交程式Driver端解析260
17.1.1SparkConf解析263
17.1.2SparkContext解析264
17.1.3DAGScheduler創建271
17.1.4TaskScheduler創建272
17.1.5SchedulerBackend創建273
17.1.6Stage劃分與TaskSet生成274
17.1.7任務提交280
17.2Spark運行架構解析283
17.2.1Spark基本組件介紹283
17.2.2Spark的運行邏輯285
17.3Spark在不同集群上的運行架構291
17.3.1Spark在Standalone模式下的運行架構291
17.3.2Spark on yarn的運行架構294
17.3.3Spark在不同模式下的套用實戰297
17.4Spark運行架構的實戰解析300
17.5小結307