日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SparkONYarn的資源分配圖解

[[420758]]

任務(wù)提交腳本

腳本模板

當(dāng)我們提交一個Spark作業(yè)到Y(jié)ARN上,通常情況下會使用如下的腳本模板:

 
 
 
 
  1. spark-submit 
  2.     --class class-name 
  3.     --master yarn 
  4.     --deploy-mode cluster 
  5.     --driver-memory 4g 
  6.     --num-executors 2 
  7.     --executor-memory 2g 
  8.     --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