如何增加Hadoop中可以使用的最大vCores AM?

时间:2018-07-16 09:30:44

标签: hadoop resources yarn scheduler

我正在尝试一些hadoop配置。我正在寻找增加Application Masters可以使用的最大vCores数量。

我的问题是,目前只能使用1个vCore(请参见下图),因此我一次只能运行一项作业。其他工作将保留在 ACCEPT 阶段。

enter image description here

我发现了如何增加文件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

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为这些是您想要的。

  

{ "data": { "id": 2757, "name": "Callisto Network", "symbol": "CLO", "website_slug": "callisto-network", "rank": 472, "circulating_supply": 431731687.0, "total_supply": 479443453.0, "max_supply": 6500000000.0, "quotes": { "USD": { "price": 0.0183603, "volume_24h": 37051.4, "market_cap": 7926723.0, "percent_change_1h": 0.15, "percent_change_24h": -2.43, "percent_change_7d": -9.42 }, "BTC": { "price": 2.7767e-06, "volume_24h": 5.6034650942, "market_cap": 1199.0, "percent_change_1h": 0.01, "percent_change_24h": -6.16, "percent_change_7d": -7.0 } }, "last_updated": 1531748143 }, "metadata": { "timestamp": 1531747771, "error": null } }
  默认值= 1
  描述=根据虚拟CPU内核,RM上每个容器请求的最小分配。低于此数量的请求将引发InvalidResourceRequestException。

     

yarn.scheduler.minimum-allocation-vcores
  默认值= 32
  描述=在RM中,对于每个容器请求的最大分配,以虚拟CPU内核为单位。高于此值的请求将引发InvalidResourceRequestException。

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