我有一个简单的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资源管理器中,我可以看到作业,并且它显示每台机器都有足够的资源,所以我不明白是什么引起了问题。
编辑:
添加了资源管理器中的屏幕截图。这是否意味着我需要将条目更改为更大的数字?如果是这样,我该怎么做?
最佳答案
通过注意到在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/