在部署yarn时遇到ResourceManager启动不起来,然后查找日志文件提示找不到resource-types.xml
Error starting ResourceManager
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: RM uses DefaultResourceCalculator which used only memory as resource-type but invalid resource-types specified
Error starting ResourceManager
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: RM uses DefaultResourceCalculator which used only memory as resource-type but invalid resource-types specified
{memory-mb=name: memory-mb, units: Mi, type: COUNTABLE, value: 0, minimum allocation: 1024, maximum allocation: 8192, vcores=name: vcores, units: , type: COUNTABLE, va
lue: 0, minimum allocation: 1, maximum allocation: 4, network=name: network, units: M, type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036
854775807}. Use DominantResourceCalculator instead to make effective use of these resource-types
官方文档:https://hadoop.apache.org/docs/r3.0.0/hadoop-yarn/hadoop-yarn-site/ResourceModel.html
原因:
ARN 支持可扩展的资源模型。默认情况下,YARN会跟踪所有节点,应用程序和队列的CPU和内存,但资源定义可以扩展为包含任意 “countable” 资源。可数资源是在容器运行时消耗的资源,但之后会释放,CPU 和内存都是可数资源。
此外,YARN 还支持使用 “resource profiles”,允许用户通过单个配置文件指定多个资源请求,例如,“large” 可能意味着 8 个虚拟内核和 16GB RAM。
默认情况,提交 MapReduce 程序运行至 YARN 集群时,日志信息中显示出resource-types.xml资源类型配置文件未到,原因在于没有进行 YARN Resource 配置。
解决:
资源管理器是跟踪集群中哪些资源的最终仲裁者。资源管理器从XML配置文件加载其资源定义。例如,要定义除CPU和内存之外的新资源。
对于定义的每个新资源类型,可以添加可选的单元属性以设置资源类型的默认单位。
增加resource-types.xml配置:
<configuration>
<property>
<name>yarn.resource-type</name>
<value>resource1, resource2</value>
</property>
<property>
<name>yarn.resource-type.resource1.units</name>
<value>G</value>
</property>
<property>
<name>yarn.resource-type.resource2.minimum</name>
<value>1</value>
</property>
<property>
<name>yarn.resource-type.resource2.maximum</name>
<value>1024</value>
</property>
</configuration>
然后分发一下resource-types.xml文件,再重启yarn就OK了!
注意:这个官方文档里的配置项有误!里面的yarn.resource-types多了一个s,都要改成:yarn.resource-type