Capacity Scheduler如何使用node-label

2017-12-05  本文已影响37人  咖啡大象不含咖啡

什么是Node-label

实际的环境部署中,经常会出现不同的机器类型,比如有些机器是计算型的,有些则是内存型;另一种场景是在大集群中,有时候需要指定有些机器预留给特定的用户用,从而避免其它用户的任务对其造成影响;node label节点标签就是解决这类问题的一种好的方式。运维人员可以根据节点的特性将其分为不同的分区来满足业务多维度的使用需求。Yarn的Node-label功能将很好的试用于异构集群中,可以更好地管理和调度混合类型的应用程序。

Node-label特性

如何开启Node-label

默认情况下系统时没有开启node label标签功能的,可以在yarn-site.xml中修改下列配置来开启label特性。

<property>
       <name>yarn.node-labels.enabled</name>
       <value>true</value>
</property>
<property>
    <name>yarn.node-labels.manager-class</name>
<value>
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager
</value>
</property>
<property>
   <name>yarn.node-labels.fs-store.root-dir</name>
   <value>hdfs://Host0:8020/yarn/node-labels</value>
   <description>
标签数据在HDFS上的存储位置,该目录需要提前创建
</description>
</property>

关于为什么要设置这个HDFS的node-labels存储目录,是因为label信息默认是保存在内存中的,如果将label信息存于hdfs上,重启resourcemanager之后label信息不会因此丢失。
并,将该目录设置为yarn所有。

配置步骤:

  1. 先按上述要求修改yarn-site.xml
  2. 添加集群便签
    yarn rmadmin -addToClusterNodeLabels label01,label02
  3. 添加节点标签
    yarn rmadmin -replaceLabelsOnNode node1:45454,label01
    yarn rmadmin -replaceLabelsOnNode node2:45454,label02
    需一个一个添加,节点较多时建议写成脚本执行
  4. 查看标签
    yarn node -status node1:45454
    也可以通过Yarn管理页面查看Node Label
    node-label webUI
    http://RM-Address:port/cluster/nodelabels

与node-labels有关的重要配置项

配置实例


配置文件较长,以下贴出node-labes配置片段:

<!-- node-label配置 -->
  <property>
    <name>yarn.scheduler.capacity.root.default.accessible-node-labels</name>
    <value>*</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.accessible-node-labels</name>
    <value>*</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.queue1.accessible-node-labels</name>
    <value>*</value>
  </property>
<!--value值为空时,代表对任何label都无权限-->
  <property>
    <name>yarn.scheduler.capacity.root.queue2.accessible-node-labels</name>
    <value>label02</value>
  </property>

如有疑问,可通过以下公众号与作者取得联系

联系作者
上一篇下一篇

猜你喜欢

热点阅读