YARN Node Labels

Overview

Node label 可以用于对Node分组

目前支持的node partition语义如下:

  • 一个节点属于一个节点分区,因此一个集群按节点分区划分为多个不相交的子集群。默认情况下,节点属于默认分区(partition="")
  • 用户需要配置不同队列可以使用的节点分区,以及每个节点分区可用的资源百分比

Exclusive vs Non-exclusive

node partitions可以被指定为ExclusiveNon-exclusive:

  • Exclusive: 完全匹配, 有剩余资源如果不匹配也不共享
  • Non-exclusive:剩余资源可以和DEFAULT partition共享

用户可以指定每个队列可以访问的节点标签集,一个应用程序只能使用包含应用程序的队列可以访问的节点标签集。

Features

Node Labels 支持如下特征:

  • Partition cluster - 每个节点可以被打一个标签,可以用于按标签将集群划分为多个分区

  • ACL of node-labels on queues - 用户可以在每个队列上设置可访问的节点标签,因此只有某些节点只能由特定队列访问

  • Specify percentage of resource of a partition which can be accessed by a queue - 用户可以设置百分比,例如:队列A可以访问label=hbase节点上30%的资源。这样的百分比设置将与现有的资源管理器一致。

  • 在资源请求中指定所需的节点标签,只有当节点具有相同的标签时才会分配。如果未指定节点标签要求,则此类资源请求将仅分配给属于默认分区的节点(Non-exclusive node partition的空闲资源应该也可以

  • Operability

    • 节点标签和节点标签映射可以在RM restart后恢复
    • Update node labels - admin 可以在RM运行期修改节点的标签以及队列可以访问的标签
  • 可以通过三种方式将NM映射到节点标签,但在所有方法中,分区标签都应该是RM中配置的有效节点标签列表之一:

    • Centralized : 节点到标签的映射可以通过RM 暴露的 CLI、REST或RPC完成。

    • Distributed : 节点到标签的映射可以通过 NM中的Node Labels Provider完成。yarn提供了基于脚本的provider和基于配置文件的provider。在脚本的情况下,可以使用脚本路径配置NM,并且脚本可以发出节点的标签。在配置的情况下,节点标签可以直接在NM的yarn-site.xml中配置。在这两个选项中,都支持标签映射的动态刷新。

    • Delegated-Centralized : 节点到标签的映射可以通过RM中的Node Labels Provider完成. 当由于安全问题而无法由每个节点提供标签映射时,这将很有帮助,避免了大型集群中每个节点的与RM接口进行频繁德交互。在NM注册期间,将从该接口获取标签,并支持定期刷新。

Configuration

开启节点标签功能

Property Value
yarn.node-labels.fs-store.root-dir hdfs://namenode:port/path/to/store/node-labels/
yarn.node-labels.enabled true
yarn.node-labels.configuration-type 可以指定 “centralized”, “delegated-centralized” 或“distributed”. 默认是 “centralized”.
增加/修改YARN Node Labels
 yarn rmadmin -addToClusterNodeLabels "label_1(exclusive=true/false),label_2(exclusive=true/false)" 

exclusive 默认是true

查看标签
 yarn cluster --list-node-labels
删除YARN Node Labels
yarn rmadmin -removeFromClusterNodeLabels "<label>[,<label>,...]".
增加/修改标签映射
 yarn rmadmin -replaceLabelsOnNode “node1[:port]=label1 node2=label2” [-failOnUnknownNodes]. 
Configuration of Schedulers for node labels

Capacity Scheduler Configuration

Property Value
yarn.scheduler.capacity.<queue-path>.capacity Set the percentage of the queue can access to nodes belong to DEFAULT partition. The sum of DEFAULT capacities for direct children under each parent, must be equal to 100.
yarn.scheduler.capacity.<queue-path>.accessible-node-labels Admin need specify labels can be accessible by each queue, split by comma, like “hbase,storm” means queue can access label hbase and storm. All queues can access to nodes without label, user don’t have to specify that. If user don’t specify this field, it will inherit from its parent. If user want to explicitly specify a queue can only access nodes without labels, just put a space as the value.
yarn.scheduler.capacity.<queue-path>.accessible-node-labels.<label>.capacity Set the percentage of the queue can access to nodes belong to <label> partition . The sum of <label> capacities for direct children under each parent, must be equal to 100. By default, it’s 0.
yarn.scheduler.capacity.<queue-path>.accessible-node-labels.<label>.maximum-capacity Similar to yarn.scheduler.capacity.<queue-path>.maximum-capacity, it is for maximum-capacity for labels of each queue. By default, it’s 100.
yarn.scheduler.capacity.<queue-path>.default-node-label-expression Value like “hbase”, which means: if applications submitted to the queue without specifying node label in their resource requests, it will use “hbase” as default-node-label-expression. By default, this is empty, so application will get containers from nodes without label.

example

             root
            /     |    \
     engineer    sales  marketing

我们在集群中有5个节点(主机名=h1..h5),每个节点有24G内存,24个vCore。5个节点中有1个节点有GPU(假设是h5)。所以管理员给h5增加了GPU标签。

假设用户有一个容量调度程序配置,如:(这里使用key=value表示增加可读性)

yarn.scheduler.capacity.root.queues=engineering,marketing,sales
yarn.scheduler.capacity.root.engineering.capacity=33
yarn.scheduler.capacity.root.marketing.capacity=34
yarn.scheduler.capacity.root.sales.capacity=33

yarn.scheduler.capacity.root.engineering.accessible-node-labels=GPU
yarn.scheduler.capacity.root.marketing.accessible-node-labels=GPU

yarn.scheduler.capacity.root.engineering.accessible-node-labels.GPU.capacity=50
yarn.scheduler.capacity.root.marketing.accessible-node-labels.GPU.capacity=50

yarn.scheduler.capacity.root.engineering.default-node-label-expression=GPU

对于h1到h4 ,engineer sales marketing每个可以使用1/3的资源
只有engineering和marketing可以使用GPU机器,每个可以使用1/2的资源

Applications 指定标签Java api

  • ApplicationSubmissionContext.setNodeLabelExpression(..) to set node label expression for all containers of the application.
  • ResourceRequest.setNodeLabelExpression(..) to set node label expression for individual resource requests. This can overwrite node label expression set in ApplicationSubmissionContext
  • Specify setAMContainerResourceRequest.setNodeLabelExpression in ApplicationSubmissionContext to indicate expected node label for application master container
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容