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