Spark學習路線

準備
編程語言介紹
scala、java、python、R都有spark對應的api,但如果想深入理解spark還是需要學習scala的。(scala中隱式轉換特性可以很大程度提高spark開發效率);
Scala(FP+OP面向對象和函數式編程混合語言)優勢在於函數式編程;
scala是在java之外套了一層殼,編譯之後還是.class,運行在jvm,所以java語言在學習大數據組建中也特別重要;
初學可以學習先學習scala,後繼續學習java。
基礎學習
第一步:
個人感覺對於學習來說最終要的是搭建集羣,(非cdh環境、cdh採用集成一鍵安裝,對深入學習的作用不太大)先從整體瞭解spark,可以根據官網進行環境配置;
有現成的物理機器最好,沒有也可以採用虛擬技術搭建虛擬節點,對於初學者來說三個節點就可以;(可以使用軟件VirtualBox.exe,也可以使用vm)
在這裏插入圖片描述
在這一步需要了解spark運行模式(Standalone模式、Spark On YARN模式、Spark On Mesos模式)
公司開發環境一般採用on yarn 所以可以深入理解一下onyarn模式以及集羣搭建過程

第二步:
瞭解一門新技術的最好途徑就是官網http://spark.apache.org/
SPARK特點:
速度:在內存中存儲中間結果。
支持多種語言.
內置了80+的算子.
高級分析:MR/SQL/ Streamming /mllib / graph
在這裏插入圖片描述
進入官網就會看到spark與hadoop的速度對比,當然這可能是誇張的說法
接下來我們來看一下Spark架構(還是借用官方)
在這裏插入圖片描述
可以看出 sparksql、sparkstreaming等模塊都是基於apache spark模塊之上的就是我們所說的spark core
所以我們先學習spark core
sparkcore模塊

重重重點RDD(最重點的貫穿spark所有模塊)
Spark當中最重要的就是rdd了,rdd(彈性分佈式數據集)從名字上看是數據集,就是數據的集合,但是相反的是rdd中並不保存數據,而保存的是分區信息、計算法則、依賴關係、優先數據位置等(可以看一下rdd的五個屬性,熟悉的可以看一下源代碼)

重點算子(通俗點就是針對rdd計算的方法)
Spark內置了80+的算子.
算子分爲轉換算子與行動算子
由於spark的惰性,真正工作的爲行動算子
常用算子使用見附件;

重點 sparkcontext
sparkContext在Spark應用程序的執行過程中起着主導作用,它負責與程序和spark集羣進行交互,包括申請集羣資源、創建RDD、accumulators及廣播變量等。sparkContext與集羣資源管理器、work節點交互圖如下:
在這裏插入圖片描述
Sparksql模塊
Sqlcontext
SQLContext是Spark SQL進行結構化數據處理的入口,可以通過它進行DataFrame的創建及SQL的執行
最新版的spark已經使用sparksession代替
Dataframe
學習sparksql最重要的要了解dataframe
DataFrame不是Spark SQL提出,而是在Pandas就有
可以從各種source轉換成,如RDD、SQL、noSQL等
可以瞭解一下DataFrame 與 rdd互相轉換過程(此過程要深入理解必須理解scala隱式轉換的特性)
再次有一次引入RDD概念
Sparkstreaming模塊
Sparkstreaming是spark的實時數據處理模塊,但準確的說是準實時模塊(Sparkstreaming產生的是離散流,離散流可以看做是rdd的集合) 所以sparkstreaming處理的還是rdd,只不過是實時產生,批量處理
到此處可以看出RDD在spark的重要性
學習進階(可以根據過程進行google學習)
想要進一步學習spark,需要更加深入的學習scala
之後切入點還是RDD
1.RDD執行流程
2.RDD轉換過程中的寬窄依賴關係
3.計算過程中的shuffle(內存調優階段)
4.廣播變量局部變量(累加器檢查點)在hadoop權威指南中也做了一部分介紹
5.RDD子類
6.Spark任務提交流程
7.Spark與其它組件的集成
Spark高階(內存調優,參數調優)
說到調優,性能優化首先得了解內存分配,因爲spark最終運行在jvm上,所以需要學習jvm
此時java語言就需要做一定的瞭解
Jvm
內存分配模型,垃圾回收機制
Executor執行器
所有的任務都是運行在work節點的excutor中的,所以excutor內存上的優化以及任務cpu核數的合理分配對任務性能優化尤爲重要
Executor內存分配(統一,靜態,堆內,堆外)

水平有限僅供參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章