日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Node Labels特性使用

本文為您介紹YARN Node Labels特性、使用方式和常見問題。

基本介紹

YARN Node Labels特性支持將YARN NodeManager節(jié)點進行分區(qū)管理。因為一個節(jié)點只能設(shè)置屬于某一個Node Label,所以可以使用 Node Label將整個YARN集群劃分為不相交的節(jié)點集合。默認節(jié)點屬于DEFAULT分區(qū)(partition="",空字符串)。

分區(qū)又可以配置為兩類:

  • exclusive分區(qū):只允許請求和該分區(qū)匹配的容器調(diào)度到該分區(qū)的節(jié)點上。

  • non-exclusive分區(qū):除了分配該分區(qū)容器請求外,還允許在有空閑資源時將請求為DEFAULT分區(qū)的容器調(diào)度上來(或請求未特殊制定分區(qū))。

目前只有Capacity Scheduler調(diào)度器支持Node Labels分區(qū)調(diào)度,您可以通過調(diào)度器配置或者計算引擎node-label-expression參數(shù)讓隊列上的任務(wù)容器調(diào)度到隊列可訪問的分區(qū)上。

更詳細的Node Labels特性說明,請參見YARN Node Labels

使用限制

  • EMR-5.11.1之前版本和EMR-3.45.1之前版本,且yarn-site.xml配置文件中yarn.node-labels.configuration-type配置項值為centralized時,可以按照本文檔進行配置。

  • EMR-5.11.1及之后版本、EMR-3.45.1及之后版本支持在EMR控制臺管理YARN分區(qū),具體操作請參見EMR控制臺管理YARN分區(qū)

使用方式

在控制臺配置開啟Node Labels特性

在EMR控制臺YARN服務(wù)配置頁面的yarn-site.xml頁簽中,添加以下配置項,然后保存并重啟ResourceManager組件生效。

Key

Value

說明

yarn.node-labels.enabled

true

特性總開關(guān)。

yarn.node-labels.fs-store.root-dir

/tmp/node-labels

默認centralized配置模式下node label,信息存儲位置可自行規(guī)劃。

說明
  • 這里只介紹Node Labels配置節(jié)點映射最方便的centralized模式便于理解工作原理,EMR-5.11.1及之后版本和EMR-3.45.1及之后版本已經(jīng)默認使用yarn.node-labels.configuration-type=distributed模式,無需使用本文提供的手動添加命令,支持在EMR控制臺管理YARN分區(qū),具體操作請參見EMR控制臺管理YARN分區(qū)。如果有其他需求請參見Hadoop社區(qū)文檔。

  • 如果在配置yarn.node-labels.fs-store.root-dir時直接使用路徑配置而不是URL,則默認使用fs.defaultFS配置的默認文件系統(tǒng),配置等價于${fs.defaultFS}/tmp/node-labels。EMR中通常為分布式的HDFS。

命令添加相關(guān)Node Labels分區(qū)并建立節(jié)點映射

如果是需要自動指定彈性節(jié)點組擴容節(jié)點的NodeManager分區(qū),則需要在創(chuàng)建分區(qū)后,將replaceLabelsOnNode運維命令添加到對應(yīng)節(jié)點組范圍的引導(dǎo)操作腳本中,在組件啟動后執(zhí)行。

命令示例如下。

# 使用YARN默認管理員hadoop賬戶執(zhí)行
sudo su - hadoop
# 添加分區(qū)
yarn rmadmin -addToClusterNodeLabels "DEMO"
yarn rmadmin -addToClusterNodeLabels "CORE"
# 列出YARN節(jié)點列表
yarn node -list
# 配置指定節(jié)點分區(qū)映射
yarn rmadmin -replaceLabelsOnNode "core-1-1.c-XXX.cn-hangzhou.emr.aliyuncs.com=DEMO"
yarn rmadmin -replaceLabelsOnNode "core-1-2.c-XXX.cn-hangzhou.emr.aliyuncs.com=DEMO"

執(zhí)行成功后,可以在ResourceManager Web UI驗證結(jié)果。

  • Nodes頁面ResourceManager

  • Node Labels頁面Node Labels

CapacityScheduler配置隊列的可訪問分區(qū)、作業(yè)使用的分區(qū)

使用CapacityScheduler:確保yarn-site.xml文件配置中參數(shù)yarn.resourcemanager.scheduler.class的值為org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler。

capacity-scheduler.xml中使用如下配置項,配置隊列可訪問的分區(qū)和容量,<queue-path>替換為配置隊列,<label>替換為配置分區(qū)(DEFAULT分區(qū)直接用常規(guī)的capacity或maximum-capacity配置即可)。

配置項

說明

yarn.scheduler.capacity.<queue-path>.accessible-node-labels

逗號分割的分區(qū)列表。

指定隊列的可訪問分區(qū)列表。

yarn.scheduler.capacity.<queue-path>.accessible-node-labels.<label>.capacity

值規(guī)則可參考yarn.scheduler.capacity.<queue-path>.capacity

指定隊列在指定可訪問分區(qū)的資源容量。

重要

必須配置其所有祖先隊列的容量才能生效。

yarn.scheduler.capacity.<queue-path>.accessible-node-labels.<label>.maximum-capacity

值規(guī)則可參考yarn.scheduler.capacity.<queue-path>.maximum-capacity,默認值為100。

指定隊列在指定可訪問分區(qū)的可超用的最大資源容量。

yarn.scheduler.capacity.<queue-path>.default-node-label-expression

分區(qū)名,默認為空字符串代表DEFAULT分區(qū)。

指定隊列所提交作業(yè)中沒有特別指定分區(qū)的容器請求所使用的默認分區(qū)。

  • 必須配置其所有祖先隊列的相同分區(qū)容量才能使指定隊列的實際資源量大于0,原因是包括root節(jié)點在內(nèi)的yarn.scheduler.capacity.<queue-path>.accessible-node-labels.<label>.capacity的默認值為0,所以必須配置yarn.scheduler.capacity.root.accessible-node-labels.<label>.capacity=100所有的子隊列這個分區(qū)的容量才有可能不為0(理論上只要大于0即可,但是配置小于100導(dǎo)致子隊列推算的實際capacity變少了,沒什么意義);如果目標(biāo)隊列的祖先隊列capacity 配置缺失使用默認值 0,實際推算出來該隊列在此分區(qū)的實際capacity還是為0。

  • 當(dāng)yarn.scheduler.capacity.root.accessible-node-labels.<label>.capacity配置大于0后,和常規(guī)的yarn.scheduler.capacity.<queue-path>.capacity規(guī)則一樣,要求直接子隊列的相同分區(qū)capacity之和為100。

    添加配置樣例如下。

    <configuration>
      <!-- 在XML中Node Label相關(guān)新增配置項 -->
      <property>
        <!-- 配置default隊列可訪問DEMO分區(qū),必須 -->
        <name>yarn.scheduler.capacity.root.default.accessible-node-labels</name>
        <value>DEMO</value>
      </property>
      <property>
        <!-- 配置default隊列所有祖先隊列DEMO分區(qū)容量,必須 -->
        <name>yarn.scheduler.capacity.root.accessible-node-labels.DEMO.capacity</name>
        <value>100</value>
      </property>
      <property>
        <!-- 配置default隊列在DEMO分區(qū)容量,必須 -->
        <name>yarn.scheduler.capacity.root.default.accessible-node-labels.DEMO.capacity</name>
        <value>100</value>
      </property>
      <property>
        <!-- 配置default隊列在DEMO分區(qū)最大容量,可選,默認為100 -->
        <name>yarn.scheduler.capacity.root.default.accessible-node-labels.DEMO.maximum-capacity</name>
        <value>100</value>
      </property>
      <property>
        <!-- 配置default隊列作業(yè)容器請求默認提交分區(qū),可選,默認為DEFAULT分區(qū)"" -->
        <name>yarn.scheduler.capacity.root.default.default-node-label-expression</name>
        <value>DEMO</value>
      </property>
    <configuration>
    
                            

完成編輯保存后,在YARN狀態(tài)頁面使用ResourceManager組件refreshQueues操作熱更新調(diào)度器隊列配置,在控制臺上觀察任務(wù)是否成功。成功后使用ResourceManager Web UI驗證結(jié)果。ResourceManager Web UI

除了調(diào)度器隊列默認分區(qū)配置,計算引擎也都基本支持Node Labels特性(Tez除外),引擎提交程序Node Labels相關(guān)參數(shù)不做贅述。

引擎

配置項

說明

MapReduce

mapreduce.job.node-label-expression

作業(yè)所有容器默認使用的節(jié)點分區(qū)。

mapreduce.job.am.node-label-expression

ApplicationMaster使用的節(jié)點分區(qū)。

mapreduce.map.node-label-expression

map子任務(wù)使用的節(jié)點分區(qū)。

mapreduce.reduce.node-label-expression

reduce子任務(wù)使用的節(jié)點分區(qū)。

Spark

spark.yarn.am.nodeLabelExpression

ApplicationMaster使用的節(jié)點分區(qū)。

spark.yarn.executor.nodeLabelExpression

Executor使用的節(jié)點分區(qū)。

Flink

yarn.application.node-label

作業(yè)所有容器默認使用的節(jié)點分區(qū)

yarn.taskmanager.node-label

TaskManager使用的節(jié)點分區(qū),F(xiàn)link版本1.15.0開始支持,對應(yīng)EMR-3.44.0(3x系列)、EMR-5.10.0 (5x系列)。

常見問題

高可用集群必須將centralized模式Node Labels數(shù)據(jù)存儲在分布式文件系統(tǒng)中?

在高可用集群中,ResourceManager在多個節(jié)點上進行部署。開源Hadoop默認存儲Node Labels數(shù)據(jù)在本地tmp目錄file:///tmp/hadoop-yarn-${user}/node-labels/。主備切換后,新的Active節(jié)點無法讀到本地存儲的Node Labels信息,所以必須將yarn.node-labels.fs-store.root-dir配置為分布式存儲路徑,例如/tmp/node-labels或者${fs.defaultFS}/tmp/node-labels(EMR Hadoop默認文件系統(tǒng)為分布式HDFS,詳情請參見使用方式)。

重要

自定義的分布式路徑必須確保文件系統(tǒng)服務(wù)正常且hadoop用戶能正常讀寫訪問,否則ResourceManager會啟動失敗。

添加節(jié)點分區(qū)映射時為什么不指定NodeManager端口?

EMR集群一個節(jié)點上最多只有一個NodeManager進程,所以指定端口沒有太大的意義。如果因為不了解導(dǎo)致寫錯端口,或者配置端口為隨機的情況下,帶端口執(zhí)行replaceLabelsOnNode不能正確建立節(jié)點分區(qū)映射。您可以使用命令yarn node -list -showDetails查看節(jié)點當(dāng)前分區(qū)。

Node Labels適用的場景?

通常情況下,EMR集群不需要使用Node Labels特性。目前開源Hadoop YARN很多指標(biāo)都沒考慮到分區(qū),只統(tǒng)計DEFAULT分區(qū)的狀態(tài)數(shù)據(jù),帶來管理運維上的復(fù)雜性;分區(qū)調(diào)度可能無法充分利用集群資源,造成資源浪費。使用到Node Labels的場景包括集群同時運行批作業(yè)和流作業(yè),使用分區(qū)隔離;存在需要重保的作業(yè),分區(qū)后運行在非彈性節(jié)點;實例規(guī)格差異過大,用分區(qū)管理的方式分別運行作業(yè)避免不均衡等。