我正在为一些 hadoop 配置而苦苦挣扎。我正在寻找增加 Applications Masters 可以使用的最大 vCore 数量。
我的问题是目前只能使用 1 个 vCore(见下图),因此我一次只能运行一个作业。其他工作将保持在ACCEPT阶段。
我找到了如何增加文件中允许的内存
capacity-scheduler.xml
。就我而言:
<configuration>
<property>
<!-- Maximum resources to allocate to application masters
If this is too high application masters can crowd out actual work -->
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.8</value>
</property>
<property>
<name>yarn.scheduler.capacity.maximum-applications</name>
<value>10000</value>
</property>
<property>
<!-- Yarn knows where the data is local, this is the number of *times*
to try to schedule on a local node before going for rack-local -->
<name>yarn.scheduler.capacity.node-locality-delay</name>
<value>40</value>
</property>
<property>
<!-- This allows users to pick which queue to submit to.
Unless you are genuinely multi-tenant this will make your life easier. -->
<name>yarn.scheduler.capacity.queue-mappings-override.enable</name>
<value>true</value>
</property>
<!-- By default CPUs are ignored for scheduling purposes.
See https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_yarn_resource_mgt/content/ref-7a0a1ca2-72d6-4f3e-82bd-b600e9905acf.1.html -->
<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value>
</property>
<!-- Let the root queue access anything -->
<property>
<name>yarn.scheduler.capacity.root.accessible-node-labels</name>
<value>*</value>
</property>
<!-- Root queue can access 100% of data label -->
<property>
<name>yarn.scheduler.capacity.root.accessible-node-labels.data.capacity</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.accessible-node-labels.data.maximum-capacity</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.acl_administer_queue</name>
<value>*</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.capacity</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.accessible-node-labels</name>
<value>*</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.acl_submit_applications</name>
<value>*</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.capacity</name>
<value>98</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.maximum-am-resource-percent</name>
<value>0.75</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.minimum-user-limit-percent</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.ordering-policy</name>
<value>fair</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.ordering-policy.fair.enable-size-based-weight</name>
<value>false</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.state</name>
<value>RUNNING</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.user-limit-factor</name>
<value>35</value>
</property>
<!-- Pin interactive queue to data label -->
<property>
<name>yarn.scheduler.capacity.root.interactive.accessible-node-labels</name>
<value>data</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.accessible-node-labels.data.capacity</name>
<value>20</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.accessible-node-labels.data.maximum-capacity</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.acl_administer_queue</name>
<value>*</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.acl_submit_applications</name>
<value>*</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.capacity</name>
<value>1</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.default-node-label-expression</name>
<value>data</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.maximum-am-resource-percent</name>
<value>0.75</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.maximum-applications</name>
<value>2000</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.maximum-capacity</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.minimum-user-limit-percent</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.state</name>
<value>RUNNING</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.interactive.user-limit-factor</name>
<value>35</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.maximum-capacity</name>
<value>100</value>
</property>
<!-- Pin noninteractive queue to data label -->
<property>
<name>yarn.scheduler.capacity.root.noninteractive.accessible-node-labels</name>
<value>data</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.accessible-node-labels.data.capacity</name>
<value>80</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.accessible-node-labels.data.maximum-capacity</name>
<value>80</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.acl_submit_applications</name>
<value>*</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.capacity</name>
<value>1</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.default-node-label-expression</name>
<value>data</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.maximum-am-resource-percent</name>
<value>0.75</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.maximum-applications</name>
<value>8000</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.maximum-capacity</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.minimum-user-limit-percent</name>
<value>100</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.state</name>
<value>RUNNING</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.noninteractive.user-limit-factor</name>
<value>77</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.queues</name>
<value>default,interactive,noninteractive</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.user-limit-factor</name>
<value>3</value>
</property>
</configuration>
我正在使用 Hortonworks 2.6.0
Hadoop版本:Hadoop 2.7.3.2.6.0.3-8
提前致谢。
我想这些就是你要找的。
yarn.scheduler.minimum-allocation-vcores
默认 = 1
Description = RM 上每个容器请求的最小分配,以虚拟 CPU 内核为单位。低于此的请求将抛出 InvalidResourceRequestException。yarn.scheduler.maximum-allocation-vcores
默认 = 32
Description = RM 上每个容器请求的最大分配,以虚拟 CPU 内核为单位。高于此的请求将抛出 InvalidResourceRequestException。
https://hadoop.apache.org/docs/r2.7.6/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
更改此设置,然后重试。
来自
<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value>
</property>
到
<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
</property>