首页 > 解决方案 > flink on yarn 错误“纱线只有-1个可用的虚拟核心”

问题描述

我已经安装了 Cloudera CDH 6,然后我想使用来自 flink 网站的包安装 flink,并运行它“flink on yarn”。

我有以下步骤: 1. 编辑 /etc/profile

导出 HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH-6.0.0-1.cdh6.0.0.p0.537114/lib/hadoop/etc/hadoop

  1. 执行 ./yarn-session.sh -n 4 -jm 2048 -tm 2048 -s 3 -nm FlinkOnYarnSession -d -st

但总是显示:</p>

每个节点的虚拟核心数配置为 4,但 Yarn 只有 -1 个可用虚拟核心。请注意,虚拟核心数默认设置为任务槽数,除非在 Flink 配置中使用 'yarn.containers.vcores' 进行配置。

这是一个新集群,没有任何作业正在运行,我在 yarn webUI 中看到有 20 个 vcore 可用。

请帮助解决这个问题。非常感谢!

在此处输入图像描述

标签: apache-flinkcloudera

解决方案


这是由于 flink 中的一个 bug,详细可以在这里查看: https ://issues.apache.org/jira/browse/FLINK-5542

在 flink 1.6.1 版本中,我通过修改 yarn-site.yml 并添加 cpu-vcores 参数解决了这个问题。

vim $HADOOP_CONF_DIR/yarn-site.yml

添加 yarn.nodemanager.resource.cpu-vcores 属性,例如设置为 8。

<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>8</value>
</property>

推荐阅读