Spark是發(fā)源于美國加州大學(xué)伯克利分校AMPLab的集群計(jì)算平臺(tái),它立足于內(nèi)存計(jì)算,性能超過Hadoop百倍,從多迭代批量處理出發(fā),兼收并蓄數(shù)據(jù)倉庫、流處理和圖計(jì)算等多種計(jì)算范式,馬來西亞主機(jī) 日本服務(wù)器,是罕見的全能選手。
Spark采用一個(gè)統(tǒng)一的技術(shù)堆棧解決了云計(jì)算大數(shù)據(jù)的如流處理、圖技術(shù)、機(jī)器學(xué)習(xí)、NoSQL查詢等方面的所有核心問題,具有完善的生態(tài)系統(tǒng),這直接奠定了其一統(tǒng)云計(jì)算大數(shù)據(jù)領(lǐng)域的霸主地位。
伴隨Spark技術(shù)的普及推廣,對(duì)專業(yè)人才的需求日益增加。Spark專業(yè)人才在未來也是炙手可熱,輕而易舉可以拿到百萬的薪酬。而要想成為Spark高手,也需要一招一式,從內(nèi)功練起:通常來講需要經(jīng)歷以下階段:
第一階段:熟練的掌握Scala語言
1,Spark框架是采用Scala語言編寫的,精致而優(yōu)雅。要想成為Spark高手,你就必須閱讀Spark的源代碼,就必須掌握Scala,;
2, 雖然說現(xiàn)在的Spark可以采用多語言Java、Python等進(jìn)行應(yīng)用程序開發(fā),但是最快速的和支持最好的開發(fā)API依然并將永遠(yuǎn)是Scala方式的API,所以你必須掌握Scala來編寫復(fù)雜的和高性能的Spark分布式程序;
3, 尤其要熟練掌握Scala的trait、apply、函數(shù)式編程、泛型、逆變與協(xié)變等;
第二階段:精通Spark平臺(tái)本身提供給開發(fā)者API
1, 掌握Spark中面向RDD的開發(fā)模式,掌握各種transformation和action函數(shù)的使用;
2, 掌握Spark中的寬依賴和窄依賴以及l(fā)ineage機(jī)制;
3, 掌握RDD的計(jì)算流程,例如Stage的劃分、Spark應(yīng)用程序提交給集群的基本過程和Worker節(jié)點(diǎn)基礎(chǔ)的工作原理等
第三階段:深入Spark內(nèi)核
此階段主要是通過Spark框架的源碼研讀來深入Spark內(nèi)核部分:
1, 通過源碼掌握Spark的任務(wù)提交過程;
2, 通過源碼掌握Spark集群的任務(wù)調(diào)度;
3, 尤其要精通DAGScheduler、TaskScheduler和Worker節(jié)點(diǎn)內(nèi)部的工作的每一步的細(xì)節(jié);
第四階級(jí):掌握基于Spark上的核心框架的使用
Spark作為云計(jì)算大數(shù)據(jù)時(shí)代的集大成者,在實(shí)時(shí)流處理、圖技術(shù)、機(jī)器學(xué)習(xí)、NoSQL查詢等方面具有顯著的優(yōu)勢(shì),我們使用Spark的時(shí)候大部分時(shí)間都是在使用其上的框架例如Shark、Spark Streaming等:
1, Spark Streaming是非常出色的實(shí)時(shí)流處理框架,要掌握其DStream、transformation和checkpoint等;
2, Spark的離線統(tǒng)計(jì)分析功能,Spark 1.0.0版本在Shark的基礎(chǔ)上推出了Spark SQL,離線統(tǒng)計(jì)分析的功能的效率有顯著的提升,需要重點(diǎn)掌握;
3,美國云服務(wù)器 韓國vps云主機(jī), 對(duì)于Spark的機(jī)器學(xué)習(xí)和GraphX等要掌握其原理和用法;
第五階級(jí):做商業(yè)級(jí)別的Spark項(xiàng)目
通過一個(gè)完整的具有代表性的Spark項(xiàng)目來貫穿Spark的方方面面,包括項(xiàng)目的架構(gòu)設(shè)計(jì)、用到的技術(shù)的剖析、開發(fā)實(shí)現(xiàn)、運(yùn)維等,完整掌握其中的每一個(gè)階段和細(xì)節(jié),這樣就可以讓您以后可以從容面對(duì)絕大多數(shù)Spark項(xiàng)目。
第六階級(jí):提供Spark解決方案
1, 徹底掌握Spark框架源碼的每一個(gè)細(xì)節(jié);
2, 根據(jù)不同的業(yè)務(wù)場(chǎng)景的需要提供Spark在不同場(chǎng)景的下的解決方案;
3, 根據(jù)實(shí)際需要,在Spark框架基礎(chǔ)上進(jìn)行二次開發(fā),打造自己的Spark框架;
前面所述的成為Spark高手的六個(gè)階段中的第一和第二個(gè)階段可以通過自學(xué)逐步完成,隨后的三個(gè)階段最好是由高手或者專家的指引下一步步完成,最后一個(gè)階段,基本上就是到”無招勝有招”的時(shí)期,很多東西要用心領(lǐng)悟才能完成。