自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Spark ON Yarn的資源分配圖解

開(kāi)發(fā) 架構(gòu) Spark
在Spark中,執(zhí)行內(nèi)存和存儲(chǔ)內(nèi)存共享一個(gè)統(tǒng)一的區(qū)域。當(dāng)沒(méi)有使用執(zhí)行內(nèi)存時(shí),存儲(chǔ)內(nèi)存可以獲取所有可用內(nèi)存,反之亦然。如有必要,執(zhí)行內(nèi)存可以占用存儲(chǔ)存儲(chǔ),但僅限于總存儲(chǔ)內(nèi)存使用量低于某個(gè)閾值。

[[420758]]

任務(wù)提交腳本

腳本模板

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

  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

每個(gè)executor的最大核數(shù)

  • num-executors=每個(gè)node的executor數(shù) * work節(jié)點(diǎn)的數(shù)

每個(gè)node的executor數(shù) = 總核數(shù) / 每個(gè)executor的最大cup核數(shù),具體是通過(guò)參數(shù)

yarn.nodemanager.resource.cpu-vcores進(jìn)行配置,比如該值配置為:33,參數(shù)executor-cores的值為:5,那么每個(gè)node的executor數(shù) = (33 - 1[操作系統(tǒng)預(yù)留])/ 5 = 6,假設(shè)集群節(jié)點(diǎn)為10,那么num-executors = 6 * 10 =60

  • executor-memory

該參數(shù)的值依賴(lài)于:yarn-nodemanager.reaource.memory-mb,該參數(shù)限定了每個(gè)節(jié)點(diǎn)的container的最大內(nèi)存值。

該參數(shù)的值=yarn-nodemanager.reaource.memory-mb / 每個(gè)節(jié)點(diǎn)的executor數(shù)量 ,如果yarn的參數(shù)配置為160,那么

yarn-nodemanager.reaource.memory-mb / 每個(gè)節(jié)點(diǎn)的executor數(shù)量 = 160 / 6 ≈ 26GB

Spark程序提交運(yùn)行過(guò)程

  • 提交作業(yè)
  • 資源管理器分配資源啟動(dòng)app master
  • App master與Driver會(huì)同步被創(chuàng)建
  • Spark driver與resource manager通信獲取每個(gè)節(jié)點(diǎn)的可用資源
  • resource manager 分配資源
  • spark driver啟動(dòng)work節(jié)點(diǎn)上的executor
  • executor向driver發(fā)送心跳信息
  • driver發(fā)送結(jié)果到客戶端

內(nèi)存管理圖解

Spark2.X的內(nèi)存管理模型如下圖所示:

Spark中的內(nèi)存使用大致包括兩種類(lèi)型:執(zhí)行和存儲(chǔ)。

執(zhí)行內(nèi)存是指用于用于shuffle、join、排序、聚合等計(jì)算的內(nèi)存

存儲(chǔ)內(nèi)存是指用于在集群中持久化和廣播內(nèi)部數(shù)據(jù)的內(nèi)存。

在Spark中,執(zhí)行內(nèi)存和存儲(chǔ)內(nèi)存共享一個(gè)統(tǒng)一的區(qū)域。當(dāng)沒(méi)有使用執(zhí)行內(nèi)存時(shí),存儲(chǔ)內(nèi)存可以獲取所有可用內(nèi)存,反之亦然。如有必要,執(zhí)行內(nèi)存可以占用存儲(chǔ)存儲(chǔ),但僅限于總存儲(chǔ)內(nèi)存使用量低于某個(gè)閾值。

該設(shè)計(jì)確保了幾種理想的特性。首先,不使用緩存的應(yīng)用程序可以使用整個(gè)空間執(zhí)行,從而避免不必要的磁盤(pán)溢出。其次,使用緩存的應(yīng)用程序可以保留最小存儲(chǔ)空間。最后,這種方法為各種工作負(fù)載提供了合理的開(kāi)箱即用性能,而無(wú)需用戶內(nèi)部劃分內(nèi)存的專(zhuān)業(yè)知識(shí)。

雖然有兩種相關(guān)配置,但一般情況下不需要調(diào)整它們,因?yàn)槟J(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錯(cuò)誤。spark.memory.storageFraction默認(rèn)大小為(JVM堆內(nèi)存 - 300MB)0.60.5。

責(zé)任編輯:武曉燕 來(lái)源: 大數(shù)據(jù)技術(shù)與數(shù)倉(cāng)
相關(guān)推薦

2009-09-21 16:58:00

部署VMware DR動(dòng)態(tài)資源自動(dòng)分配

2009-12-24 11:04:59

固定分配資源動(dòng)態(tài)分配資源

2014-04-16 13:47:43

SparkYarn

2010-04-07 15:55:17

無(wú)線接入頻段

2014-12-26 10:58:35

托管云托管私有云公共云

2011-04-19 13:48:55

vCloud Dire

2011-04-19 13:32:52

2015-04-17 10:28:02

無(wú)線頻譜移動(dòng)通信頻譜

2009-08-08 22:10:29

IP地址的分配局域網(wǎng)設(shè)置

2023-12-15 15:14:10

yarn任務(wù)管理資源管理

2014-08-25 09:03:44

HuluSpark On Y

2018-12-18 09:00:26

Kubernetes工作負(fù)載測(cè)試

2014-04-16 11:01:07

SparkYarn

2013-04-17 15:10:07

銳捷寬帶寬帶網(wǎng)絡(luò)

2023-05-31 08:12:26

Kubernete資源分配工具

2016-03-21 18:56:54

物聯(lián)網(wǎng)IoTIT基礎(chǔ)架構(gòu)

2023-10-24 07:25:10

容器資源云分級(jí)

2011-01-26 11:01:37

虛擬機(jī)負(fù)載管理資源分配

2022-04-19 07:47:13

數(shù)據(jù)中心末端資源分配

2020-04-22 14:34:42

大數(shù)據(jù)Hadoop技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)