Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
如何在 Amazon EMR 中配置或修改 YARN 节点标签?
我想在 Amazon EMR 中配置或修改 Apache Hadoop YARN 节点标签。
简短描述
默认 YARN 节点标签设置取决于您的 Amazon EMR 版本。
Amazon EMR-5.x 发行版本中的 Amazon EMR 5.19.x 及更高版本
默认情况下,YARN 节点标签功能处于启用状态。当您启用此功能时,系统将使用以下属性为核心节点创建 CORE 节点标签:
yarn.node-labels.enabled: true yarn.node-labels.am.default-node-label-expression: 'CORE'
YARN ApplicationMaster 容器只能在核心节点上分配。对于所有其他容器,没有分区限制。您可以在核心节点或任务节点上分配容器。
Amazon EMR 6.x 及更高版本
默认情况下,YARN 节点标签功能处于关闭状态。应用程序的主进程可以在核心节点和任务节点上运行。
解决方法
**注意:**在生产环境中配置 YARN 节点标签之前,最佳做法是先在测试环境中对其进行配置。当您关闭 YARN 节点标签功能时,Application-Master 容器可以在任意节点类型中启动。对于任务节点没有限制。对于配置了 Amazon Elastic Compute Cloud (Amazon EC2) Spot 实例的任务节点,如果任务节点因 Spot 容量限制而关闭,则运行作业可能会失败。
在 Amazon EMR-5.x 发行版本中的 Amazon EMR 5.19.x 及更高版本中关闭 YARN 标签
创建 EMR 集群时关闭 YARN 标签功能
完成下面的步骤:
-
在 Edit software settings(编辑软件设置)部分的 Enter configuration(输入配置)下,添加以下属性:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "false", "yarn.node-labels.am.default-node-label-expression": "" } } ]
-
创建具有 .sh 扩展名的以下脚本,然后将该脚本上传到 Amazon Simple Storage Service (Amazon S3) 存储桶:
#!/bin/bash sudo sed -i 's/yarn rmadmin.*-addToClusterNodeLabels "CORE(exclusive=false)"/echo "NO LABELS"/g' /var/aws/emr/bigtop-deploy/puppet/modules/hadoop/manifests/init.pp
-
在 Bootstrap Actions(引导操作)部分中,将该脚本添加为自定义操作,然后创建集群。
-
要确认更改已应用,请在主节点中运行以下命令:
yarn cluster --list-node-labels
输出将显示节点标签的空值:
<<<<< Node Labels: >>>>>>
在现有 Amazon EMR 集群中关闭 YARN 标签功能
完成下面的步骤:
-
创建您的 yarn-site.xml 文件的备份。路径为 :/etc/hadoop/conf/yarn-site.xml。
-
运行以下命令以文件编辑器模式打开 yarn-site.xml:
sudo su vi yarn-site.xml
-
将 yarn.node-labels.enabled 属性值更改为 false:
<property> <name>yarn.node-labels.enabled</name> <value>false</value> </property>
-
删除 yarn.node-labels.am.default-node-label-expression 属性中的 CORE 值:
<property> <name>yarn.node-labels.am.default-node-label-expression</name> <value></value> </property>
-
如果您的集群版本高于 5.29.0,请运行以下命令以重启资源管理器:
sudo systemctl restart hadoop-yarn-resourcemanager.service
sudo systemctl status hadoop-yarn-resourcemanager.service
-or-
如果您的集群版本为 5.29.0 或更早版本,请运行以下命令来重启资源管理器:sudo stop hadoop-yarn-resourcemanager
sudo start hadoop-yarn-resourcemanager
-
要确认更改已应用,请运行以下命令:
yarn cluster --list-node-labels
输出将显示节点标签的空值:
<<<<< Node Labels: >>>>>>
在 Amazon EMR 6.x 及更高版本中启用 YARN 标签功能
创建 EMR 集群时启用 YARN 标签功能
-
在 Edit software settings(编辑软件设置)部分的 Enter configuration(输入配置)下,添加以下属性:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "true", "yarn.node-labels.am.default-node-label-expression": "CORE" } } ]
-
创建集群。
-
要确认更改已应用,请在主节点中运行以下命令:
yarn cluster --list-node-labels
输出将显示节点标签的空值:
<<<<< Node Labels: <CORE:exclusivity=false> >>>>>
在现有 EMR 集群中启用 YARN 标签功能
完成下面的步骤:
-
打开 Amazon EMR 控制台。
-
在导航窗格中,选择 Clusters(集群),然后选择要编辑的集群。
-
选择 Configurations(配置)选项卡。
-
在 Instance group configurations(实例组配置)下,选择一个实例组。
-
选择 Reconfigure(重新配置)图标,选择 Edit in JSON(以 JSON 格式编辑),然后添加以下属性:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "true", "yarn.node-labels.am.default-node-label-expression": "CORE" } } ]
-
选择 Apply this configuration to all active instance groups(将此配置应用于所有活动实例组),然后保存更改。
-
在主节点中以 hadoop 用户身份运行以下命令:
yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"
-
要确认更改已应用,请在主节点中运行以下命令:
yarn cluster --list-node-labels
输出将显示节点标签的空值:
<<<<< Node Labels: <CORE:exclusivity=false> >>>>>>

相关内容
- AWS 官方已更新 3 年前