Spark零基礎(chǔ)實(shí)戰(zhàn)
Spark是業(yè)界公認(rèn)的近幾年發(fā)展快、受關(guān)注度的一體化多元化的大數(shù)據(jù)計(jì)算技術(shù),可以同時(shí)滿足不同業(yè)務(wù)場(chǎng)景和不同數(shù)據(jù)規(guī)模的大數(shù)據(jù)計(jì)算的需要。
本書(shū)首先通過(guò)代碼實(shí)戰(zhàn)的方式對(duì)學(xué)習(xí)Spark前必須掌握的Scala內(nèi)容進(jìn)行講解并結(jié)合Spark源碼的閱讀來(lái)幫助讀者快速學(xué)習(xí)Scala函數(shù)式編程與面向?qū)ο笸昝澜Y(jié)合的編程藝術(shù),接著對(duì)Hadoop和Spark集群安裝部署以及Spark在不同集成開(kāi)發(fā)環(huán)境的開(kāi)發(fā)實(shí)戰(zhàn)作出了詳細(xì)的講解,然后基于大量的實(shí)戰(zhàn)案例來(lái)講解Spark核心RDD編程并深度解密RDD的密碼,并且通過(guò)實(shí)戰(zhàn)的方式詳解了TopN在Spark RDD中的實(shí)現(xiàn),為了讓讀者徹底了解Spark,本書(shū)用了大量的篇幅詳細(xì)解密了Spark的高可用性、內(nèi)核架構(gòu)、運(yùn)行機(jī)制等內(nèi)容。
Spark零基礎(chǔ)實(shí)戰(zhàn)這本書(shū)定位于零基礎(chǔ)的學(xué)員,也可以作為有一定大數(shù)據(jù)Hadoop經(jīng)驗(yàn)的從業(yè)者以及對(duì)大數(shù)據(jù)非常感興趣的學(xué)生的本Spark入門(mén)書(shū)籍。
適讀人群 :Spark零基礎(chǔ)實(shí)戰(zhàn)這本書(shū)定位于零基礎(chǔ)的學(xué)員,也可以作為有一定大數(shù)據(jù)Hadoop經(jīng)驗(yàn)的從業(yè)者以及對(duì)大數(shù)據(jù)非常感興趣的學(xué)生的第一本Spark入門(mén)書(shū)籍。
編寫(xiě)內(nèi)容具有創(chuàng)新點(diǎn)及實(shí)用性。
(1)新,基于Spark 1.6.0版本的書(shū)籍,
(2)書(shū)籍徹底細(xì)膩地解析Spark入門(mén)所需的Scala語(yǔ)言基礎(chǔ)、Spark環(huán)境搭建、Spark應(yīng)用實(shí)戰(zhàn),并以此為基礎(chǔ)給出進(jìn)一步的擴(kuò)展知識(shí);
(3)配備教學(xué)視頻,方便學(xué)習(xí)者多媒體方式學(xué)習(xí);
(4)全面覆蓋各種源碼、部署及開(kāi)發(fā)環(huán)境的搭建,基于Scala與Java語(yǔ)言雙語(yǔ)言給出實(shí)戰(zhàn)案例及其深入解析。
大數(shù)據(jù)已經(jīng)成為公眾流行詞多年,不管在業(yè)界還是在其他領(lǐng)域都緊隨時(shí)代發(fā)展的潮流,人類(lèi)社會(huì)的發(fā)展已經(jīng)進(jìn)入到大數(shù)據(jù)時(shí)代。我們生活的今天大到互聯(lián)網(wǎng)公司,小到每一個(gè)個(gè)體或者每一臺(tái)移動(dòng)設(shè)備其每天都會(huì)產(chǎn)生海量的新數(shù)據(jù),那么對(duì)于這些海量數(shù)據(jù)的處理就面臨著巨大的考驗(yàn),而在此過(guò)程中為了滿足業(yè)務(wù)需要,各類(lèi)技術(shù)如雨后春筍般出現(xiàn)并得到IT企業(yè)的實(shí)踐應(yīng)用和發(fā)展,就應(yīng)對(duì)海量數(shù)據(jù)的處理框架而言,于2006年誕生的Hadoop,使業(yè)界掀起一股熱潮,它改變了企業(yè)對(duì)數(shù)據(jù)的存儲(chǔ)、處理和分析的過(guò)程,加速了大數(shù)據(jù)的發(fā)展,形成了自己的極其火爆的技術(shù)生態(tài)圈,并受到非常廣泛的應(yīng)用。而Spark在2009年初來(lái)源于伯克利大學(xué)的研究性項(xiàng)目,于美國(guó)加州大學(xué)伯克利分校的AMPLab實(shí)驗(yàn)室誕生,2010年實(shí)現(xiàn)開(kāi)源并在2013年成為Apache的基金孵化器項(xiàng)目并在不到一年的時(shí)間成為其的項(xiàng)目,在短短幾年的時(shí)間內(nèi)獲得極速發(fā)展并被各大互聯(lián)網(wǎng)公司應(yīng)用于實(shí)際項(xiàng)目中以實(shí)現(xiàn)海量數(shù)據(jù)的處理,可以毫不夸張地講Spark是大數(shù)據(jù)時(shí)代發(fā)展的必然產(chǎn)物,勢(shì)必會(huì)成為好的大數(shù)據(jù)處理框架之一。
根據(jù)Stackoverflow調(diào)查顯示Spark是2016年IT從業(yè)者獲得薪水的技術(shù)之一,從事Spark開(kāi)發(fā)的IT人員年薪達(dá)到125000美元,從事Scala開(kāi)發(fā)的IT人員年薪同從事Spark的IT人員保持一致的水平,可見(jiàn)Spark已經(jīng)成為開(kāi)發(fā)人員在大數(shù)據(jù)領(lǐng)域收入好的技術(shù)之一。了解Spark或者讀過(guò)Spark源碼的人都知道Spark主要是Scala語(yǔ)言開(kāi)發(fā)的,而Scala語(yǔ)言是一門(mén)面向?qū)ο笈c函數(shù)式編程完美結(jié)合的語(yǔ)言。因此本書(shū)主要以零基礎(chǔ)實(shí)戰(zhàn)掌握Spark運(yùn)行機(jī)制為導(dǎo)向詳細(xì)對(duì)Scala的語(yǔ)法和重要知識(shí)點(diǎn)進(jìn)行實(shí)戰(zhàn)講解,通過(guò)源碼對(duì)Spark的內(nèi)核架構(gòu)進(jìn)行剖析并賦予實(shí)戰(zhàn)案例來(lái)引導(dǎo)讀者能夠在掌握Scala的同時(shí)快速進(jìn)行Spark的深入學(xué)習(xí)。
Spark基于RDD(彈性分布式數(shù)據(jù)集)實(shí)現(xiàn)了一體化、多元化的大數(shù)據(jù)處理體系,是目前熱門(mén)效的大數(shù)據(jù)領(lǐng)域的計(jì)算平臺(tái)。Spark框架完美融合了Spark SQL、Spark Streaming、MLLib、GraphX子框架,使得各子框架之間實(shí)現(xiàn)數(shù)據(jù)共享和操作,強(qiáng)大的計(jì)算能力和集成化使得Spark在大數(shù)據(jù)計(jì)算領(lǐng)域具有得天獨(dú)厚的優(yōu)勢(shì),因此國(guó)際上很多大型互聯(lián)網(wǎng)公司均使用Spark實(shí)現(xiàn)海量數(shù)據(jù)的處理,如國(guó)內(nèi)的BAT等,有過(guò)千臺(tái)節(jié)點(diǎn)組成的集群高效快速地處理每日生成的海量數(shù)據(jù)。
Spark在大數(shù)據(jù)處理領(lǐng)域的迅猛發(fā)展,給了很多互聯(lián)網(wǎng)公司高效處理海量數(shù)據(jù)的方案,但是Spark人才的稀缺使得很多公司心有余而力不足,以至于不能將企業(yè)的生產(chǎn)力量化提高成了很多企業(yè)面臨的主要問(wèn)題,大數(shù)據(jù)Spark工程師的缺少直接制約了很多公司的轉(zhuǎn)型和發(fā)展,在此情況下本書(shū)以零基礎(chǔ)實(shí)戰(zhàn)為主導(dǎo),由基礎(chǔ)部分細(xì)致地帶領(lǐng)初學(xué)者從零基礎(chǔ)入門(mén)直到深入學(xué)習(xí)Spark。本書(shū)主要面向的對(duì)象是預(yù)從事大數(shù)據(jù)領(lǐng)域的初學(xué)者、高校學(xué)生以及有一定大數(shù)據(jù)從事經(jīng)驗(yàn)的工作人員等。
本書(shū)以零基礎(chǔ)實(shí)戰(zhàn)Spark為主導(dǎo),首先實(shí)戰(zhàn)講解Scala基礎(chǔ)語(yǔ)法與定義、Scala面向?qū)ο缶幊、Scala函數(shù)式編程、Scala類(lèi)型系統(tǒng)模式匹配、Scala因式轉(zhuǎn)換以及Scala并發(fā)編程等,基本包含了Scala所有重要內(nèi)容并且每一部分在實(shí)戰(zhàn)的同時(shí)配合Scala在Spark源碼中的應(yīng)用帶領(lǐng)讀者徹底理解Scala語(yǔ)言的藝術(shù)。其次對(duì)Spark源碼在不同方式下的編譯進(jìn)行演示,對(duì)Hadoop不同模式的集群搭建、Spark集群的搭建以及Spark在IDE、IntelliJ IDEA不同工具下的實(shí)戰(zhàn)和源碼導(dǎo)入均作了細(xì)致講解,相信通過(guò)源碼的學(xué)習(xí)和不同工具下對(duì)Spark程序的開(kāi)發(fā)實(shí)戰(zhàn)可以幫助讀者對(duì)Spark有一個(gè)全面的理解和認(rèn)識(shí),并能快速投入到實(shí)際開(kāi)發(fā)中。然后對(duì)Spark中為重要的核心組件之一RDD(彈性分布式數(shù)據(jù)集)進(jìn)行了詳細(xì)地解析,并介紹Spark Master HA的4種策略,解密如何通過(guò)ZOOKEEPER這種企業(yè)經(jīng)常使用的策略來(lái)保證Spark Master HA。本書(shū)后一部分綜合講解了Spark內(nèi)核架構(gòu)以及實(shí)戰(zhàn)解析Spark在不同模式下的運(yùn)行原理。希望本書(shū)可以引領(lǐng)讀者細(xì)致高效地學(xué)習(xí)Spark框架,并成為企業(yè)渴求的Spark高端人才。
參與本書(shū)編寫(xiě)的有王家林、孔祥瑞等。本書(shū)能順利出版,離不開(kāi)化學(xué)工業(yè)出版社的大力支持與幫助,包括進(jìn)度把控、技術(shù)服務(wù)、排版等各個(gè)方面,在此表示誠(chéng)摯地感謝。
在本書(shū)閱讀過(guò)程中,如發(fā)現(xiàn)任何問(wèn)題或有任何疑問(wèn),可以加入本書(shū)的閱讀群(QQ:302306504)提出討論,會(huì)有專(zhuān)人幫忙答疑。同時(shí),該群中也會(huì)提供本書(shū)所用案例代碼。
如果讀者想要了解或者學(xué)習(xí)更多大數(shù)據(jù)的相關(guān)技術(shù),可以關(guān)注DT大數(shù)據(jù)夢(mèng)工廠微信公眾號(hào)DT_Spark及QQ群437123764,或者掃描下方二維碼咨詢(xún),也可以通過(guò)YY客戶端登錄68917580頻道直接體驗(yàn)。王家林老師的新浪微博是http://weibocom/ilovepains/ 歡迎大家在微博上進(jìn)行互動(dòng)。
由于時(shí)間倉(cāng)促,書(shū)中難免存在不妥之處,請(qǐng)讀者諒解,并提出寶貴意見(jiàn)。
王家林 2016.8.13于北京
王家林,DT大數(shù)據(jù)夢(mèng)工廠/Spark亞太研究院,DT大數(shù)據(jù)夢(mèng)工廠創(chuàng)始人/Spark亞太研究院院長(zhǎng)及首席專(zhuān)家,DT 大數(shù)據(jù)夢(mèng)工廠創(chuàng)始人和首席專(zhuān)家,Spark 亞太研究院院長(zhǎng)和首席專(zhuān)家,移動(dòng)互聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)領(lǐng)域集大成者,多家公司的技術(shù)顧問(wèn),業(yè)界技術(shù)培訓(xùn)專(zhuān)家。
大數(shù)據(jù)技術(shù)公益推廣人,大數(shù)據(jù)在線教育世界技術(shù)專(zhuān)家,Spark 大數(shù)據(jù)中國(guó)區(qū)培訓(xùn)專(zhuān)家。徹底研究了Spark 從0.5.0 到1.6.1 中共22 個(gè)版本的Spark 源碼,目前致力于開(kāi)發(fā)全球優(yōu)化的Spark 中國(guó)版本。尤其擅長(zhǎng)Spark 在生產(chǎn)環(huán)境下各種類(lèi)型和場(chǎng)景故障的排除和解決,癡迷于Spark 生產(chǎn)環(huán)境下任意類(lèi)型(例如Shuffle 和各種內(nèi)存問(wèn)題)的Spark 程序的深度性能優(yōu)化。
從2014 年6 月24 日起,已開(kāi)啟免費(fèi)的Spark 公開(kāi)課《決勝大數(shù)據(jù)時(shí)代Spark100 期公益大講堂》。在2015 年12 月27 日成立DT 大數(shù)據(jù)夢(mèng)工廠,開(kāi)啟IMF(Impossible Mission Force)行動(dòng),率先在全球開(kāi)展以Spark 為核心的,免費(fèi)為社會(huì)培養(yǎng)100 萬(wàn)企業(yè)級(jí)實(shí)戰(zhàn)高級(jí)大數(shù)據(jù)人才行動(dòng)計(jì)劃,截止目前已有數(shù)千人參與到這個(gè)行動(dòng)之中。
曾負(fù)責(zé)某公司的類(lèi)Hadoop 框架開(kāi)發(fā)工作,是Hadoop 一站式解決方案的提供者,同時(shí)也是云計(jì)算和分布式大數(shù)據(jù)處理的較早實(shí)踐者之一,在實(shí)踐中用Hadoop 解決不同領(lǐng)域的大數(shù)據(jù)的高效處理和存儲(chǔ)。致力于Android、HTML5、Hadoop 等的軟、硬、云整合的一站式解決方案專(zhuān)家。
2007 年國(guó)內(nèi)較早從事于Android 系統(tǒng)移植、軟硬整合、框架修改、應(yīng)用程序軟件開(kāi)發(fā)以及Android 系統(tǒng)測(cè)試和應(yīng)用軟件測(cè)試的技術(shù)專(zhuān)家。
2015年12月,在電視媒體錄制了《大數(shù)據(jù)的奧秘》,《大數(shù)據(jù)時(shí)代的九大神器》等視頻光盤(pán)。
? 2016年1月至今,直播培訓(xùn)課程Hadoop,MySQL,Linux,Scala,Java,Spark零基礎(chǔ)到高級(jí)企業(yè)級(jí)實(shí)戰(zhàn),Spark源碼解析及性能優(yōu)化,JVM性能調(diào)優(yōu),機(jī)器學(xué)習(xí)從零基礎(chǔ)到企業(yè)級(jí)實(shí)戰(zhàn)持續(xù)中。
第1章Scala光速入門(mén)1
1.1Scala基礎(chǔ)與語(yǔ)法入門(mén)實(shí)戰(zhàn)1
1.1.1Scala基本數(shù)據(jù)類(lèi)型1
1.1.2Scala變量聲明2
1.1.3算術(shù)操作符介紹2
1.1.4條件語(yǔ)句5
1.1.5循環(huán)6
1.1.6異?刂8
1.2Scala中Array、Map等數(shù)據(jù)結(jié)構(gòu)實(shí)戰(zhàn)10
1.2.1定長(zhǎng)數(shù)組和可變數(shù)組10
1.2.2數(shù)組常用算法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小結(jié)18
第2章Scala面向?qū)ο髲氐拙癝park源碼閱讀19
2.1Scala面向?qū)ο笤斀?9
2.1.1Scala中的class、object初介紹19
2.1.2主構(gòu)造器與輔助構(gòu)造器22
2.1.3類(lèi)的字段和方法徹底精通23
2.1.4抽象類(lèi)、接口的實(shí)戰(zhàn)詳解24
2.1.5Scala Option類(lèi)詳解26
2.1.6object的提取器27
2.1.7Scala的樣例類(lèi)實(shí)戰(zhàn)詳解27
2.2Scala綜合案例及Spark源碼解析28
2.3小結(jié)29
第3章Scala函數(shù)式編程徹底精通及Spark源碼閱讀30
3.1函數(shù)式編程概述30
3.2函數(shù)定義35
3.3函數(shù)式對(duì)象37
3.4本地函數(shù)41
3.5頭等函數(shù)42
3.6函數(shù)字面量和占位符43
3.6.1Scala占位符43
3.6.2函數(shù)字面量43
3.6.3部分應(yīng)用函數(shù)44
3.7閉包和Curring46
3.8高階函數(shù)49
3.9從Spark源碼角度解析Scala函數(shù)式編程55
3.10小結(jié)57
第4章Scala模式匹配、類(lèi)型系統(tǒng)徹底精通與Spark源碼閱讀58
4.1模式匹配語(yǔ)法58
4.2模式匹配實(shí)戰(zhàn)59
4.2.1模式匹配基礎(chǔ)實(shí)戰(zhàn)59
4.2.2數(shù)組、元祖實(shí)戰(zhàn)59
4.2.3Option實(shí)戰(zhàn)60
4.2.4提取器60
4.2.5Scala異常處理與模式匹配61
4.2.6sealed密封類(lèi)62
4.3類(lèi)型系統(tǒng)62
4.3.1泛型62
4.3.2邊界63
4.3.3協(xié)變與逆變63
4.4Spark源碼閱讀64
4.5小結(jié)65
第5章Scala隱式轉(zhuǎn)換等徹底精通及Spark源碼閱讀66
5.1隱式轉(zhuǎn)換66
5.1.1隱式轉(zhuǎn)換的使用條件66
5.1.2隱式轉(zhuǎn)換實(shí)例66
5.2隱式類(lèi)68
5.3隱式參數(shù)詳解68
5.4隱式值69
5.5Spark源碼閱讀解析69
5.6小結(jié)70
第6章并發(fā)編程及Spark源碼閱讀71
6.1并發(fā)編程徹底詳解71
6.1.1actor工作模型71
6.1.2發(fā)送消息72
6.1.3回復(fù)消息74
6.1.4actor創(chuàng)建74
6.1.5用上下文context創(chuàng)建actor75
6.1.6用ActorSystem創(chuàng)建actor76
6.1.7用匿名類(lèi)創(chuàng)建actor76
6.1.8actor生命周期77
6.1.9終止actor78
6.1.10actor實(shí)戰(zhàn)80
6.2小結(jié)82
第7章源碼編譯83
7.1Windows下源碼編譯83
7.1.1下載Spark源碼83
7.1.2Sbt方式84
7.1.3Maven方式89
7.1.4需要注意的幾個(gè)問(wèn)題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需要注意的幾個(gè)問(wèn)題99
7.3小結(jié)100
第8章Hadoop分布式集群環(huán)境搭建101
8.1搭建Hadoop單機(jī)環(huán)境101
8.1.1安裝軟件下載101
8.1.2Ubuntu系統(tǒng)的安裝101
8.1.3Hadoop集群的安裝和設(shè)置109
8.1.4Hadoop單機(jī)模式下運(yùn)行WordCount示例113
8.2Hadoop偽分布式環(huán)境115
8.2.1Hadoop偽分布式環(huán)境搭建115
8.2.2Hadoop偽分布式模式下運(yùn)行WordCount示例117
8.3Hadoop完全分布式環(huán)境120
8.3.1Hadoop完全分布式環(huán)境搭建120
8.3.2Hadoop完全分布式模式下運(yùn)行WordCount示例123
8.4小結(jié)125
第9章精通Spark集群搭建與測(cè)試127
9.1Spark集群所需軟件的安裝127
9.1.1安裝JDK127
9.1.2安裝Scala130
9.2Spark環(huán)境搭建132
9.2.1Spark單機(jī)與單機(jī)偽分布式環(huán)境132
9.2.2Spark Standalone集群環(huán)境搭建與配置135
9.2.3Spark Standalone環(huán)境搭建的驗(yàn)證136
9.3Spark集群的測(cè)試137
9.3.1通過(guò)sparkshell腳本進(jìn)行測(cè)試137
9.3.2通過(guò)sparksubmit腳本進(jìn)行測(cè)試145
9.4小結(jié)145
第10章Scala IDE開(kāi)發(fā)Spark程序?qū)崙?zhàn)解析146
10.1Scala IDE安裝146
10.1.1Ubuntu系統(tǒng)下安裝146
10.1.2Windows系統(tǒng)下安裝147
10.2ScalaIDE開(kāi)發(fā)重點(diǎn)步驟詳解148
10.3Wordcount創(chuàng)建實(shí)戰(zhàn)152
10.4Spark源碼導(dǎo)入Scala IDE154
10.5小結(jié)164
第11章實(shí)戰(zhàn)詳解IntelliJ IDEA下的Spark程序開(kāi)發(fā)165
11.1IDEA安裝165
11.1.1Ubuntu系統(tǒng)下安裝165
11.1.2Windows系統(tǒng)下安裝167
11.2IDEA開(kāi)發(fā)重點(diǎn)步驟詳解168
11.2.1環(huán)境配置168
11.2.2項(xiàng)目創(chuàng)建170
11.2.3Spark包引入174
11.3Wordcount創(chuàng)建實(shí)戰(zhàn)174
11.4IDEA導(dǎo)入Spark源碼177
11.5小結(jié)183
第12章Spark簡(jiǎn)介184
12.1Spark發(fā)展歷史184
12.2Spark在國(guó)內(nèi)外的使用185
12.3Spark生態(tài)系統(tǒng)簡(jiǎn)介188
12.3.1Hadoop生態(tài)系統(tǒng)189
12.3.2BDAS生態(tài)系統(tǒng)195
12.3.3其他199
12.4小結(jié)199
第13章Spark RDD解密200
13.1淺談RDD200
13.2創(chuàng)建RDD的幾種常用方式204
13.3Spark RDD API解析及其實(shí)戰(zhàn)206
13.4RDD的持久化解析及其實(shí)戰(zhàn)217
13.5小結(jié)218
第14章Spark程序之分組TopN開(kāi)發(fā)實(shí)戰(zhàn)解析219
14.1分組TopN動(dòng)手實(shí)戰(zhàn)219
14.1.1Java之分組TopN開(kāi)發(fā)實(shí)戰(zhàn)219
14.1.2Scala之分組TopN開(kāi)發(fā)實(shí)戰(zhàn)226
14.2Scala之分組TopN運(yùn)行原理解密232
14.2.1textFile232
14.2.2map234
14.2.3groupByKey234
14.3小結(jié)237
第15章MasterHA工作原理解密238
15.1Spark需要Master HA的原因238
15.2Spark Master HA的實(shí)現(xiàn)238
15.3Spark和ZOOKEEPER的協(xié)同工作機(jī)制240
15.4ZOOKEEPER實(shí)現(xiàn)應(yīng)用實(shí)戰(zhàn)242
15.5小結(jié)247
第16章Spark內(nèi)核架構(gòu)解密248
16.1Spark的運(yùn)行過(guò)程248
16.1.1SparkContext的創(chuàng)建過(guò)程248
16.1.2Driver的注冊(cè)過(guò)程249
16.1.3Worker中任務(wù)的執(zhí)行254
16.1.4任務(wù)的調(diào)度過(guò)程255
16.1.5Job執(zhí)行結(jié)果的產(chǎn)生257
16.2小結(jié)259
第17章Spark運(yùn)行原理實(shí)戰(zhàn)解析260
17.1用戶提交程序Driver端解析260
17.1.1SparkConf解析263
17.1.2SparkContext解析264
17.1.3DAGScheduler創(chuàng)建271
17.1.4TaskScheduler創(chuàng)建272
17.1.5SchedulerBackend創(chuàng)建273
17.1.6Stage劃分與TaskSet生成274
17.1.7任務(wù)提交280
17.2Spark運(yùn)行架構(gòu)解析283
17.2.1Spark基本組件介紹283
17.2.2Spark的運(yùn)行邏輯285
17.3Spark在不同集群上的運(yùn)行架構(gòu)291
17.3.1Spark在Standalone模式下的運(yùn)行架構(gòu)291
17.3.2Spark on yarn的運(yùn)行架構(gòu)294
17.3.3Spark在不同模式下的應(yīng)用實(shí)戰(zhàn)297
17.4Spark運(yùn)行架構(gòu)的實(shí)戰(zhàn)解析300
17.5小結(jié)307