0

I am struggling with some hadoop configuration. I am looking for increasing the number of vCores maximum that Applications Masters can use.

My problem is that for now only 1 vCores can be used (see image below), therefore I can only run one job at a time. Other jobs will remain in ACCEPT stage.

enter image description here

I have found how to increase the memory allowed in the file capacity-scheduler.xml. In my case:

<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>

I am using Hortonworks 2.6.0
Hadoop version: Hadoop 2.7.3.2.6.0.3-8

Thanks in advance.

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
ImbaBalboa
  • 851
  • 9
  • 23

2 Answers2

1

I think these are what you're looking for.

yarn.scheduler.minimum-allocation-vcores
Default = 1
Description = The minimum allocation for every container request at the RM, in terms of virtual CPU cores. Requests lower than this will throw a InvalidResourceRequestException.

yarn.scheduler.maximum-allocation-vcores
Default = 32
Description = The maximum allocation for every container request at the RM, in terms of virtual CPU cores. Requests higher than this will throw a InvalidResourceRequestException.

https://hadoop.apache.org/docs/r2.7.6/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

Community
  • 1
  • 1
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
0

Change this setting, and retry with.

From

<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value>
</property>

To

<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
</property>

Show here : Apache Hadoop Yarn - Underutilization of cores

C L
  • 1