YARN的Node Label机制

news/2024/5/20 5:09:33 标签: hadoop, 大数据, hdfs

Node Label的介绍

官网对NodeLabel的介绍如下:

Node label is a way to group nodes with similar characteristics and applications can specify where to run.
节点标签是一种对具有相似特征的节点进行分组的方法,应用程序可以指定在哪里运行。

那么标签到底是做什么的?

我们可以创建多个队列,划分集群的总的资源。例如队列hive占集群总资源的70%,那么这个70%具体会落地在哪一个节点上呢?没办法确定,有可能在qianfeng01,也有可能在qianfeng03。而节点标签,可以为每一个NodeManager打上标签,可以限定某一个程序只能够运行在哪些节点上。例如我希望我的wordcount的程序只会运行在qianfeng02和qianfeng03节点上,这就是标签的作用。

开启标签

修改 yarn-site.xml 文件,添加如下配置:

<!-- 启用节点标签 -->
<property>
    <name>yarn.node-labels.enabled</name>
    <value>true</value>
</property>

<!-- 节点标签存储的路径,可以是HDFS,也可以是本地文件系统 -->
<!-- 如果是本地文件系统,使用类似file:///home/yarn/node-label这样的路径 -->
<!-- 无论是HDFS,还是本地文件系统,需要保证RM有权限去访问 -->
<property>
    <name>yarn.node-labels.fs-store.root-dir</name>
    <value>hdfs://qianfeng01:9820/tmp/yarn/node-labels/</value>
</property>

<!-- 保持默认即可,也可以不配置这个选项 -->
<property>
    <name>yarn.node-labels.configuration-type</name>
    <value>centralized</value>
</property>
复制代码

分发到每一个节点,重启YARN即可。

标签管理

添加标签

yarn rmadmin -addToClusterNodeLabels "label_1"
yarn rmadmin -addToClusterNodeLabels "label_2,label_3"
复制代码

查看标签

yarn cluster --list-node-labels
复制代码

删除标签

yarn rmadmin -removeFromClusterNodeLabels label_1
复制代码

为节点打上标签

# 绑定一个NodeManager与Label
yarn rmadmin -replaceLabelsOnNode "qianfeng02=label_2"
# 绑定多个NodeManager与Label的关系,中间用空格分隔
yarn rmadmin -replaceLabelsOnNode "qianfeng02=label_2 qianfeng03=label_2"

# 一个标签可以绑定多个NodeManager,一个NodeManager只能绑定一个标签。
# 例如上方的,label_2就绑定在了qianfeng02和qianfeng03的NodeManager上。

# 绑定完成后,可以使用WebUI进行查看。
# 在WebUI的左侧,有Node Labels的查看,可以查看到所有的标签,以及对应的节点信息。
# 需要注意的是,如果某节点没有进行标签的绑定,则其在一个默认的<DEFAULT_PARTITION>上绑定。
复制代码

为队列绑定标签

通过修改capacity-scheduler.xml实现:

<!-- 前文,我们已经新增了一个队列,现在共有两个队列: default、small -->

<!-- 设置某个队列可以使用的标签,*表示通配,可以使用所有标签 -->
<property>
    <name>yarn.scheduler.capacity.root.default.accessible-node-labels</name>
    <value>*</value>
</property>

<!-- 设置small队列可以使用label_3标签的节点资源 -->
<property>
    <name>yarn.scheduler.capacity.root.small.accessible-node-labels</name>
    <value>label_3</value>
</property>

<!-- 设置default队列可以使用label_2标签的节点资源最多60% -->
<property>
    <name>yarn.scheduler.capacity.root.default.accessible-node-labels.label_2.capacity</name>
    <value>60</value>
</property>

<!-- 设置small队列可以使用label_3标签的节点资源最多80% -->
<property>
    <name>yarn.scheduler.capacity.root.small.accessible-node-labels.label_3.capacity</name>
    <value>80</value>
</property>

<!-- 设置default队列,如果没有明确的标签指向,则默认使用label_3 -->
<property>
    <name>yarn.scheduler.capacity.root.default.default-node-label-expression</name>
    <value>label_3</value>
</property>
复制代码

修改之后,无需重启,直接刷新一下队列即可: yarn rmadmin -refreshQueues

测试

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi -Dmapreduce.job.queuename=small 10 10

 也可以观看大数据相关视频:

千锋大数据Hadoop全新增强版-先导片


http://www.niftyadmin.cn/n/387408.html

相关文章

视频美颜sdk是什么?技术解析与实现原理详解

视频美颜技术的发展则为人们提供了一种美化自己的方式&#xff0c;因此&#xff0c;视频美颜技术成为了一个备受关注的领域。在这个领域中&#xff0c;视频美颜sdk技术则是实现高效美颜的关键因素之一。本文将从技术角度分析视频美颜sdk的实现原理和优势。 一、视频美颜技术的…

从架构到特性:JuiceFS 企业版首次全面解析

大多数用户是通过社区版初次接触 JuiceFS&#xff0c;企业版对大家来说可能比较陌生。与其他开源项目不同的是&#xff0c;JuiceFS 企业版比社区版更早发布&#xff0c;社区版的架构设计大量参考了企业版。对 JuiceFS 用户而言&#xff0c;这意味着社区版具有更加稳定的特性。 …

vue cli配置代理解决跨域问题

跨域问题 是由于违背了同源策略&#xff0c;同源策略规定了协议名、主机名、端口号必须一致 我们目前所处的位置是http localhost 8080&#xff0c;我们想向一台服务器发送请求&#xff0c;它的位置是http localhost 5000&#xff0c;我们的ajax请求从浏览器发送到服务器&#…

阿里云推出工作学习 AI 助手“通义听悟”;谷歌发布 PaLM2;吴恩达推出了三门课

&#x1f989; AI新闻 &#x1f680; 阿里云推出工作学习 AI 助手“通义听悟” 摘要&#xff1a;阿里云峰会・粤港澳大湾区上&#xff0c;阿里云宣布推出最新产品“通义听悟”&#xff0c;该产品能用于会议讨论、教学培训、调研访谈、视频观看等场景&#xff0c;依托大模型&a…

工程师常见的协议分类方式

协议可以按照不同的分类方式进行划分。以下是一些常见的协议分类方式&#xff1a; 按照网络层级&#xff1a; 应用层协议&#xff1a;DNS, Telnet, SSH, DHCP, SNMP, SIP, MQTT, NTP, LDAP, IMAP, POP3, RDP, RTSP, CoAP, SMTPS传输层协议&#xff1a;TCP, UDP, SCTP, DCCP网…

Flink的状态管理

Flink作为一种流处理框架&#xff0c;具备处理连续流数据的能力。在处理流数据的过程中&#xff0c;状态管理是非常重要的&#xff0c;它用于维护和跟踪数据流的中间结果和状态信息。本篇博客将介绍Flink中的状态管理机制。 1. 状态概述 状态是指在流处理过程中需要保持的数据…

Facebook不同账户类型的投放格式【Facebook企业户】

在Facebook企业户中&#xff0c;不同的广告类型具有多样化的投放格式&#xff0c;旨在帮助企业更好地吸引目标受众、提升品牌曝光和实现营销目标。 一、广告类型的概述 Facebook提供了多种广告类型&#xff0c;包括图片广告、视频广告、幻灯片广告、动态产品广告等。每种广告类…

0501源码分析-启动过程-springboot2.7.x系列

文章目录 1前言2 启动第一阶段2.1 deduceFromClasspath 推断应用类型2.2 getSpringFactoriesInstances(Class)2.3 ApplicationContextInitializer2.4 ApplicationListener2.5 自定义接口实现配置示例 3 启动第二阶段3.1 SpringApplicationRunListener3.2 容器创建和准备 4 总结…