SparkCore 簡單總結一下

三大數據結構:

—RDD:彈性分佈式數據集

------定義:

---------數據集:存數的數據的計算邏輯
---------分佈式:數據的來源&計算&數據的存儲,都可以是分佈式的
---------彈性:
------------1.血緣(依賴關係):spark可以通過特殊的處理方案減少依賴關係(checkpoint)
------------2.計算:Spark的計算是基於內存的所以性能特別高,可以和磁盤靈活切換
------------3.分區:Spark在創建默認分區後可以通過指定的算子來改變分區數量
------------4.容錯:Spark在執行計算時,如果發生了錯誤,需要進行重試處理(血統和checkpoint都是容錯機制)
---------spark中的各種數量:
------------1.Executor:可以通過提交應用的參數進行設定,一個worker可以有多個Executor
------------2.Partition:默認情況下,採取的是Hadoop的切片規則,如果讀取內存中的數據,可以通過特定的算法進行設定,可以通過其他算子進行改變
多個階段(Stage、shuffle)的場合,下一個階段分區數量,取決於最後一個RDD的分區數,最後一個RDD是多少就是多少,但
是內部的數據發生了變化
------------3.Stage:階段數量=1(最後的階段resultStage)+Shuffle依賴數量;劃分階段就是爲了執行任務的等待,因爲shuffle需要落地,需要時間。
------------4.Task:任務數量,原則上一個分區就是一個任務,但是實際應用中可以動態調整,可以3-5倍的內核數的Task

------創建:

------------1.內存中創建:MakeRDD
------------2.存儲中創建:textFile
------------3.從其他RDD創建:轉換算子

------屬性:

------------1.分區:hash分區,ranger分區,自定義分區
------------2.依賴關係:寬依賴和窄依賴
------------3.分區器:默認是hash分區
------------4.優先位置:機架感知
------------5.計算函數:算子

------使用:

------------1.轉換算子:
---------------1.1、單Value類型
---------------1.2、雙Value類型
---------------1.3、K-V類型
------------2.行動算子:RunJob類算子

—廣播變量Broadcast:分佈式共享只讀數據

------1.能夠精確的統計數據的各種數據例如:
可以統計出符合userID的記錄數,在同一個時間段內產生了多少次購買,可以使用ETL進行數據清洗,並使用Accumulator來進行數據的統計
------2.廣播變量減少網絡數據的傳輸
------3.是一個調優策略
------4.sc.broadcast()

—累加器Accumulator:分佈式共享只寫數據

------1.作爲調試工具,能夠觀察每個task的信息,通過累加器可以在sparkIUI觀察到每個task所處理的記錄數
------2.實現一個累加器首先要繼承一個父類AccumulatorV2[IN][OUT]新版本的累加器
------3.繼承抽象方法,實現六個方法:
---------- 初始值:isZero,
---------- 複製:copy,
---------- 重置:reset,
---------- 累加(局部的):add,
---------- 合併(全局的)merge,
---------- 獲得結果:value

常用算子

https://blog.csdn.net/qq_36525906/article/details/102895941

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