我有一个简单的hadoop集群,它由一个主节点和两个从节点组成。我已经安装了spark,并且尝试从spark示例中运行建议的示例作业:

./bin/run-example SparkPi 10

似乎一切都已正确提交,并且作业状态已更新为“已接受”,但是它保持此状态。在检查输出时,我发现以下内容:
2018-05-21 16:27:41 INFO  Client:54 - Application report for
application_1526910547092_0004 (state: ACCEPTED)
2018-05-21 16:27:41 INFO  Client:54 -
 client token: N/A
 diagnostics: [Mon May 21 16:27:40 +0200 2018] Application is added to the scheduler and is not yet activated. Skipping AM assignment as cluster resource is empty.  Details : AM Partition = <DEFAULT_PARTITION>; AM Resource Request = <memory:1024, vCores:1>; Queue Resource Limit for AM = <memory:0, vCores:0>; User AM Resource Limit of the queue = <memory:0, vCores:0>; Queue AM Resource Usage = <memory:0, vCores:0>;
 ApplicationMaster host: N/A
 ApplicationMaster RPC port: -1
 queue: default
 start time: 1526912860005
 final status: UNDEFINED
 tracking URL: http://vm-10-155-208-189:8088/proxy/application_1526910547092_0004/
 user: root

特别是以下内容:应用程序已添加到调度程序中,尚未激活。集群资源为空时,跳过AM分配。详细信息:AM分区=; AM资源请求=; AM =的队列资源限制;队列的用户AM资源限制=;队列AM资源使用率=;

因此,似乎暗示我为可用内存设置了限制0,为vCores设置了限制0?

我的机器每个都有8GB的RAM,每个都有至少20GB的可用空间,所以我不确定为什么此作业实际上从未分配任何资源?

同样,我无法启动spark-shell,只是在输入命令后永久挂起。

我一定配置不正确,但是不确定。在Hadoop资源管理器中,我可以看到作业,并且它显示每台机器都有足够的资源,所以我不明白是什么引起了问题。

编辑:

添加了资源管理器中的屏幕截图。这是否意味着我需要将条目更改为更大的数字?如果是这样,我该怎么做?

apache-spark - Spark作业永远不会从ACCEPTED状态接受,并且挂起状态为UNDEFINED-LMLPHP

最佳答案

通过注意到在Hadoop Web UI中我的数据节点显示为 Activity 节点,但在资源管理器中没有 Activity 节点显示,我能够解决此问题。

通过将namenode和所有datanode上的yarn-site.xml修改为以下内容,可以解决此问题:

<configuration>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>master:8030</value>
</property>
<property>
   <name>yarn.resourcemanager.address</name>
   <value>master:8032</value>
</property>
<property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:8088</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>
</property>
<property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>master:8033</value>
</property>
</configuration>

关于apache-spark - Spark作业永远不会从ACCEPTED状态接受,并且挂起状态为UNDEFINED,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50451196/

10-16 00:56