新聞中心
[[420758]]
任務(wù)提交腳本
腳本模板
當(dāng)我們提交一個Spark作業(yè)到Y(jié)ARN上,通常情況下會使用如下的腳本模板:

- spark-submit
- --class class-name
- --master yarn
- --deploy-mode cluster
- --driver-memory 4g
- --num-executors 2
- --executor-memory 2g
- --executor-cores 2
參數(shù)解讀
具體參數(shù)的含義如下圖所示:
- executor-cores
每個executor的最大核數(shù)
- num-executors=每個node的executor數(shù) * work節(jié)點的數(shù)
每個node的executor數(shù) = 總核數(shù) / 每個executor的最大cup核數(shù),具體是通過參數(shù)
yarn.nodemanager.resource.cpu-vcores進行配置,比如該值配置為:33,參數(shù)executor-cores的值為:5,那么每個node的executor數(shù) = (33 - 1[操作系統(tǒng)預(yù)留])/ 5 = 6,假設(shè)集群節(jié)點為10,那么num-executors = 6 * 10 =60
- executor-memory
該參數(shù)的值依賴于:yarn-nodemanager.reaource.memory-mb,該參數(shù)限定了每個節(jié)點的container的最大內(nèi)存值。
該參數(shù)的值=yarn-nodemanager.reaource.memory-mb / 每個節(jié)點的executor數(shù)量 ,如果yarn的參數(shù)配置為160,那么
yarn-nodemanager.reaource.memory-mb / 每個節(jié)點的executor數(shù)量 = 160 / 6 ≈ 26GB
Spark程序提交運行過程
- 提交作業(yè)
- 資源管理器分配資源啟動app master
- App master與Driver會同步被創(chuàng)建
- Spark driver與resource manager通信獲取每個節(jié)點的可用資源
- resource manager 分配資源
- spark driver啟動work節(jié)點上的executor
- executor向driver發(fā)送心跳信息
- driver發(fā)送結(jié)果到客戶端
內(nèi)存管理圖解
Spark2.X的內(nèi)存管理模型如下圖所示:
Spark中的內(nèi)存使用大致包括兩種類型:執(zhí)行和存儲。
執(zhí)行內(nèi)存是指用于用于shuffle、join、排序、聚合等計算的內(nèi)存
存儲內(nèi)存是指用于在集群中持久化和廣播內(nèi)部數(shù)據(jù)的內(nèi)存。
在Spark中,執(zhí)行內(nèi)存和存儲內(nèi)存共享一個統(tǒng)一的區(qū)域。當(dāng)沒有使用執(zhí)行內(nèi)存時,存儲內(nèi)存可以獲取所有可用內(nèi)存,反之亦然。如有必要,執(zhí)行內(nèi)存可以占用存儲存儲,但僅限于總存儲內(nèi)存使用量低于某個閾值。
該設(shè)計確保了幾種理想的特性。首先,不使用緩存的應(yīng)用程序可以使用整個空間執(zhí)行,從而避免不必要的磁盤溢出。其次,使用緩存的應(yīng)用程序可以保留最小存儲空間。最后,這種方法為各種工作負(fù)載提供了合理的開箱即用性能,而無需用戶內(nèi)部劃分內(nèi)存的專業(yè)知識。
雖然有兩種相關(guān)配置,但一般情況下不需要調(diào)整它們,因為默認(rèn)值適用于大多數(shù)工作負(fù)載:
spark.memory.fraction默認(rèn)大小為(JVM堆內(nèi)存 - 300MB)的一小部分(默認(rèn)值為0.6)。剩下的空間(40%)保留用于用戶數(shù)據(jù)結(jié)構(gòu),Spark中的內(nèi)部元數(shù)據(jù),以及在稀疏和異常大的記錄的情況下防止OOM錯誤。spark.memory.storageFraction默認(rèn)大小為(JVM堆內(nèi)存 - 300MB)0.60.5。
標(biāo)題名稱:SparkONYarn的資源分配圖解
文章分享:http://www.5511xx.com/article/ccsjhho.html


咨詢
建站咨詢
