柚子快報激活碼778899分享:大數(shù)據(jù) 分布式 Spark內(nèi)核
柚子快報激活碼778899分享:大數(shù)據(jù) 分布式 Spark內(nèi)核
環(huán)境準備及提交流程
底層通信協(xié)議
Akka通信協(xié)議,收發(fā)郵箱是一體的Netty通信協(xié)議,收發(fā)郵箱是分開的
任務調(diào)度
任務的最小單位是線程。失敗重試,會記錄失敗的次數(shù),如果超過最大重試次數(shù),宣告Application失敗。失敗的同時會記錄它上一次所在的ExecutorID和Host, 最多重試4次。
Shuffle
功能:打散重分區(qū)
特點:無論MR和Spark,Shuffle都需要落盤。其中的區(qū)別是MR每次都落盤,Spark是盡可能少落盤。
落盤的話就需要考慮不同分區(qū)之間的數(shù)據(jù)如何存放的問題。假設每個Executor有兩個Task,總共有三個分區(qū)。以下是四種shuffle落盤的策略:
每個Task里面的數(shù)據(jù)打散成3個文件,一個Executor生成6個文件Executor里面的兩個Task的數(shù)據(jù)打散到3個文件中,一個分區(qū)一個文件,共3個文件。sortShuffle: Executor里面打散的數(shù)據(jù)落盤到一個文件中,三個分區(qū)的數(shù)據(jù)通過索引來區(qū)分。這個就是SortShuffle,目前MR就是sortShuffle。bypassShuffle:對不同分區(qū)的數(shù)據(jù)進行打散重分區(qū)時不對數(shù)據(jù)進行排序,只適合非聚合類的shuffle算子,比如reduceByKey。
Spark內(nèi)存管理
堆內(nèi)和堆外內(nèi)存
堆內(nèi):通過JVM申請的內(nèi)存,通過了JVM的轉化,更加安全,并且有垃圾回收機制。堆外:也稱頁緩存,自己向操作系統(tǒng)申請。沒有經(jīng)過JVM轉換,不安全,沒有垃圾回收機制。堆外的內(nèi)存空間是通過C語言控制的,有出現(xiàn)內(nèi)存泄漏的危險。
優(yōu)點:
減少了垃圾回收的工作加快了復制的速度,省略了序列化的操作。 缺點:
堆外內(nèi)存難以控制,如果內(nèi)存泄漏,很難排查不適合存儲復雜對象。 spark中,堆外內(nèi)存默認是關閉的。配置方法
executor-memory 和 driver-memory啟用堆外內(nèi)存spark.memory.offHeap.eabled,并由spark.memory.offHeap.size設置堆外空間大小。
內(nèi)存的分配
靜態(tài)內(nèi)存管理,簡稱寫死
分為三個部分:
存儲空間60%執(zhí)行空間20%其他空間20% 統(tǒng)一內(nèi)存管理,簡稱動態(tài)分配
分為三個部分
其他空間40%存儲空間+計算空間=60% 存儲和計算空間反向使用,允許空間借用。
RDD的持久化機制
存儲內(nèi)存淘汰規(guī)則:
舊RDD所屬RDD不能處于被讀狀態(tài),避免引發(fā)一致性問題新舊Block不能屬于同一個RDD,避免循環(huán)淘汰按照最近最少LRU進行淘汰
柚子快報激活碼778899分享:大數(shù)據(jù) 分布式 Spark內(nèi)核
精彩文章
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。