为什么YARN不能要求超过32个核心来运行工作?

时间:2015-04-21 18:33:37

标签: hadoop mapreduce apache-spark yarn

设定:

  • 否。节点:3
  • 否。核心:每台机器32个核心
  • RAM:每台机器410GB
  • Spark Version:1.2.0
  • Hadoop版本:2.4.0(Hortonworks)

目的:

  • 我想运行一个包含超过32个执行器核心的Spark作业。

问题:

当我为Spark作业请求超过32个执行程序核心时,我收到以下错误:

Uncaught exception: Invalid resource request, requested virtual cores < 0, or requested virtual cores > max configured, requestedVirtualCores=150, maxVirtualCores=32
at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.validateResourceRequest(SchedulerUtils.java:212)
at org.apache.hadoop.yarn.server.resourcemanager.RMServerUtils.validateResourceRequests(RMServerUtils.java:96)
at org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.allocate(ApplicationMasterService.java:501)
at org.apache.hadoop.yarn.api.impl.pb.service.ApplicationMasterProtocolPBServiceImpl.allocate(ApplicationMasterProtocolPBServiceImpl.java:60)
at org.apache.hadoop.yarn.proto.ApplicationMasterProtocol$ApplicationMasterProtocolService$2.callBlockingMethod(ApplicationMasterProtocol.java:99)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:962)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2039)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2035)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2033)

以下是我的yarn-site.xml中的一些属性:

<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>400000</value>
</property>
<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>3072</value>
</property>

从上面到属性,我想我可以请求400k / 3072 = ~130个核心。但它仍然限制我为32.如何为Spark作业分配超过32个执行程序核心?

如果需要更多信息,请告诉我,我会更新问题。

编辑1:

来自yarn-site.xml的

vcore设置

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

1 个答案:

答案 0 :(得分:1)

在yarn-site.xml中设置

<property>
  <name>yarn.scheduler.maximum-allocation-vcores</name>
  <value>130</value>
</property>