要想成為Spark高手,需要經歷壹下階段:
第壹階段:熟練地掌握Scala語言
1, Spark框架是采用Scala語言編寫的,精致而優雅。要想成為Spark高手,妳就必須閱讀Spark的源代碼,就必須掌握Scala,;
2, 雖然說現在的Spark可以采用多語言Java、Python等進行應用程序開發,但是最快速的和支持最好的開發API依然並將永遠是Scala方式的API,所以妳必須掌握Scala來編寫復雜的和高性能的Spark分布式程序;
3, 尤其要熟練掌握Scala的trait、apply、函數式編程、泛型、逆變與協變等;
第二階段:精通Spark平臺本身提供給開發者API
1, 掌握Spark中面向RDD的開發模式,掌握各種transformation和action函數的使用;
2, 掌握Spark中的寬依賴和窄依賴以及lineage機制;
3, 掌握RDD的計算流程,例如Stage的劃分、Spark應用程序提交給集群的基本過程和Worker節點基礎的工作原理等
第三階段:深入Spark內核
此階段主要是通過Spark框架的源碼研讀來深入Spark內核部分:
1, 通過源碼掌握Spark的任務提交過程;
2, 通過源碼掌握Spark集群的任務調度;
3, 尤其要精通DAGScheduler、TaskScheduler和Worker節點內部的工作的每壹步的細節;
第四階級:掌握基於Spark上的核心框架的使用
Spark作為雲計算大數據時代的集大成者,在實時流處理、圖技術、機器學習、NoSQL查詢等方面具有顯著的優勢,我們使用Spark的時候大部分時間都是在使用其上的框架例如Shark、Spark Streaming等:
1, Spark Streaming是非常出色的實時流處理框架,要掌握其DStream、transformation和checkpoint等;
2, Spark的離線統計分析功能,Spark 1.0.0版本在Shark的基礎上推出了Spark SQL,離線統計分析的功能的效率有顯著的提升,需要重點掌握;
3, 對於Spark的機器學習和GraphX等要掌握其原理和用法;
第五階級:做商業級別的Spark項目
通過壹個完整的具有代表性的Spark項目來貫穿Spark的方方面面,包括項目的架構設計、用到的技術的剖析、開發實現、運維等,完整掌握其中的每壹個階段和細節,這樣就可以讓您以後可以從容面對絕大多數Spark項目。
第六階級:提供Spark解決方案
1, 徹底掌握Spark框架源碼的每壹個細節;