日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spark任务优先级设置:spark.yarn.priority

發(fā)布時間:2025/1/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark任务优先级设置:spark.yarn.priority 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spark對于Yarn priority的支持源碼詳解

Yarn的調(diào)度器

在Yarn中,提供了Capacity scheduler和Fair scheduler,它們都支持priority的。這里我們簡單介紹下概念,不做過多的描述。

Capacity Scheduler

Capacity scheuler設(shè)計的目的是為了讓Hadoop上的applications可以以一個多租戶的形式下分享資源運行,這種調(diào)度器一般應(yīng)用在有一個較大的公有集群,按照隊列來分配資源給特定的用戶組。我們可以簡單的通過配置就可以設(shè)定隊列在cluster中資源或者用戶在隊列中的的使用限制(最低保障和最高上限等),當(dāng)一個隊列的資源空余的時候,Yarn可以暫時利用剩余的資源分享給其他需要的隊列。

Fair Scheduler

Fair scheduler就如同它的名字一樣,他在分配資源的時候,是秉承著公平原則,applications在一段時間內(nèi)分配到的平均資源會趨于相等。如果一個只有一個application在集群上運行的時候,資源都可供這一個application使用。如果有另外的application被提交到集群上時,空閑的資源就會被分配給新提交的application上,這樣最后每個運行的application都會分配到相等的資源。

Priority在Yarn中的使用

Capacity Scheduler

Capacity scheduler支持對應(yīng)用的priority的設(shè)置。Yarn的priority是整數(shù)型,更大的數(shù)就代表更高的優(yōu)先級,這個功能只支持在FIFO(默認(rèn))的策略下進行。priority可以針對cluster或者queue級別進行設(shè)置。

cluster level: 如果你的application設(shè)置的priority超過了cluster最大值,那按照最大的cluster priority對待。
queue level: 隊列有一個默認(rèn)的priority值,queue下的applications如果沒有設(shè)置具體的priority會被設(shè)置成該默認(rèn)值。如果application變更了queue,它的priority值不會更改。

Fair Scheduler

Fair scheduler支持把一個正在運行的application遷移到另一個priority不同的queue里,這樣這個application獲取資源的權(quán)重就會跟著queue變化。被遷移得application的資源就會算在新的queue上,如果所需資源超過了新的queue的最大限制,遷移就會失敗。

SparkOnYarn支持priority

如何為Spark app設(shè)置priority

只需要再SparkConf里進行設(shè)置即可,遵循Yarn對于priority的定義,數(shù)值越大,priority越高,在同一時間提交的job會有更高的優(yōu)先級獲取資源:

val sparkConf = new SparkConf().set(APPLICATION_TAGS.key, ",tag1, dup,tag2 , ,multi word , dup").set(MAX_APP_ATTEMPTS, 42).set("spark.app.name", "foo-test-app").set(QUEUE_NAME, "staging-queue").set(APPLICATION_PRIORITY, 1)

Spark源碼

Spark目前已經(jīng)有了對于Yarn的priority官方支持,這里給出一個在Jira上closed的SPARK-10879。這個Jira是很早以前的一個版本,diff僅供參考,用于讓大家理解Spark on Yarn如何設(shè)置priority的基本流程。
其實需要支持priority很簡單,一是需要在submit的時候提供priority參數(shù)的設(shè)置,官方是放在了SparkConf里去設(shè)置;另一個是需要在createApplicationSubmissionContext的時候,調(diào)用setPriority將priority傳入到Y(jié)arn。這里給出關(guān)鍵的地方的代碼:

/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/config.scala

private[spark] val APPLICATION_PRIORITY = ConfigBuilder("spark.yarn.priority").doc("Application priority for YARN to define pending applications ordering policy, those" +" with higher value have a better opportunity to be activated. Currently, YARN only" +" supports application priority when using FIFO ordering policy.").intConf.createOptional

/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala中對createApplicationSubmissionContext函數(shù)的修改:

/*** Set up the context for submitting our ApplicationMaster.* This uses the YarnClientApplication not available in the Yarn alpha API.*/def createApplicationSubmissionContext(newApp: YarnClientApplication,containerContext: ContainerLaunchContext): ApplicationSubmissionContext = {val componentName = if (isClusterMode) {config.YARN_DRIVER_RESOURCE_TYPES_PREFIX} else {config.YARN_AM_RESOURCE_TYPES_PREFIX}val yarnAMResources = getYarnResourcesAndAmounts(sparkConf, componentName)val amResources = yarnAMResources ++getYarnResourcesFromSparkResources(SPARK_DRIVER_PREFIX, sparkConf)logDebug(s"AM resources: $amResources")val appContext = newApp.getApplicationSubmissionContextappContext.setApplicationName(sparkConf.get("spark.app.name", "Spark"))appContext.setQueue(sparkConf.get(QUEUE_NAME))appContext.setAMContainerSpec(containerContext)appContext.setApplicationType("SPARK")sparkConf.get(APPLICATION_TAGS).foreach { tags =>appContext.setApplicationTags(new java.util.HashSet[String](tags.asJava))}sparkConf.get(MAX_APP_ATTEMPTS) match {case Some(v) => appContext.setMaxAppAttempts(v)case None => logDebug(s"${MAX_APP_ATTEMPTS.key} is not set. " +"Cluster's default value will be used.")}sparkConf.get(AM_ATTEMPT_FAILURE_VALIDITY_INTERVAL_MS).foreach { interval =>appContext.setAttemptFailuresValidityInterval(interval)}val capability = Records.newRecord(classOf[Resource])capability.setMemory(amMemory + amMemoryOverhead)capability.setVirtualCores(amCores)if (amResources.nonEmpty) {ResourceRequestHelper.setResourceRequests(amResources, capability)}logDebug(s"Created resource capability for AM request: $capability")sparkConf.get(AM_NODE_LABEL_EXPRESSION) match {case Some(expr) =>val amRequest = Records.newRecord(classOf[ResourceRequest])amRequest.setResourceName(ResourceRequest.ANY)amRequest.setPriority(Priority.newInstance(0))amRequest.setCapability(capability)amRequest.setNumContainers(1)amRequest.setNodeLabelExpression(expr)appContext.setAMContainerResourceRequest(amRequest)case None =>appContext.setResource(capability)}sparkConf.get(ROLLED_LOG_INCLUDE_PATTERN).foreach { includePattern =>try {val logAggregationContext = Records.newRecord(classOf[LogAggregationContext])logAggregationContext.setRolledLogsIncludePattern(includePattern)sparkConf.get(ROLLED_LOG_EXCLUDE_PATTERN).foreach { excludePattern =>logAggregationContext.setRolledLogsExcludePattern(excludePattern)}appContext.setLogAggregationContext(logAggregationContext)} catch {case NonFatal(e) =>logWarning(s"Ignoring ${ROLLED_LOG_INCLUDE_PATTERN.key} because the version of YARN " +"does not support it", e)}}appContext.setUnmanagedAM(isClientUnmanagedAMEnabled)sparkConf.get(APPLICATION_PRIORITY).foreach { appPriority =>appContext.setPriority(Priority.newInstance(appPriority))}appContext}

總結(jié)

以上是生活随笔為你收集整理的spark任务优先级设置:spark.yarn.priority的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看视频日韩 | 日韩精品成人av | 又黄又爽又刺激的视频 | 中文久久久 | 在线看av网址 | 国产在线高潮 | 四虎影视8848hh| 久久露脸国语精品国产 | 精品麻豆一区二区 | www.黄色片.com| 国产免费无码一区二区视频 | 国产精品成av人在线视午夜片 | 欧美福利一区二区 | 男女男精品视频站 | 欧美天天性影院 | 天天天天射 | 51免费看成人啪啪片 | 久久网站免费看 | 韩国伦理在线 | 精品一区二区在线看 | 粉嫩av| 国产人妖网站 | 国产日韩一区二区三区在线观看 | 伊人亚洲天堂 | 国产69熟 | 欧美日韩小视频 | 超碰超碰超碰超碰 | 91视频xxx| 熟妇高潮一区二区三区在线播放 | 黄色一级大片在线免费看国产一 | 一区二区三区欧美日韩 | 成人中文字幕在线 | 国产精品国产三级国产aⅴ原创 | 麻豆av电影在线 | 欧美日韩人妻精品一区 | 国产精品看片 | 国产精品久久久久久久av | 亚洲综合天堂 | 中文在线字幕免费观看电 | av不卡在线观看 | 欧美熟妇交换久久久久久分类 | 五月六月婷婷 | 2025国产精品视频 | 韩国中文三级hd字幕 | 亚洲一区精品在线 | 精品久久影视 | 中文字幕在线第一页 | 夜夜爱爱 | 日韩精品大片 | 天天干天天做天天操 | 又污又黄的网站 | 91福利在线导航 | aaaaa级片 | 波多野结衣在线免费视频 | 日本香蕉视频 | 日日爱影视 | 天天天天天天干 | 校园伸入裙底揉捏1v1h | 交hdsexvideos娇小 | 精品国产乱码久久久久久1区二区 | 久久久精品久久久久 | 蜜桃久久一区二区三区 | 欧美私人影院 | 日本男人天堂 | 午夜亚洲天堂 | 亚洲国产99 | 青青草免费在线视频 | 黄色你懂的 | 99久热| 99热最新网址 | 自拍偷拍亚洲天堂 | 国产色站 | 免费一级特黄3大片视频 | 特级毛片在线 | 性欧美大战久久久久久久久 | 午夜激情亚洲 | 日韩精品第一页 | 91国产丝袜播放在线 | 日本大尺度吃奶做爰视频 | 国产精品一区二区电影 | 日本系列第一页 | 翔田千里88av中文字幕 | 秋霞电影一区二区 | 一区二区三区四区不卡 | 欧美精品一级二级三级 | 免费一区二区三区 | 插插操操| 在线观看中文字幕亚洲 | 91禁动漫在线 | 国产一区二区黄色 | 日本一区二区免费看 | 中文字幕日韩av | 日韩精品视频免费看 | 亚洲一区二区美女 | 男插女视频在线观看 | 好吊妞视频这里只有精品 | 免费毛片小视频 | 操伊人 | 久久久久无码精品国产 |