我有自己的MapReduce代码,我正在尝试运行,但它只是停留在Accepted状态。我试着运行另一个我以前运行过的示例MR作业,它很成功。但现在,这两个职位都处于接受状态。我尝试更改mapred-site.xml和yarn-site.xml中的各种属性,如这里和这里提到的,但这也没有帮助。有人能指出可能出了什么问题吗。我正在使用hadoop-2.2.0
我已经为各种属性尝试了许多值,下面是一组值-在mapred-site.xml 中
<property>
<name>mapreduce.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>mapreduce.job.tracker.reserved.physicalmemory.mb</name>
<value></value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>256</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>256</value>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>400</value>
<source>mapred-site.xml</source>
</property>
在yarn-site.xml 中
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>400</value>
<source>yarn-site.xml</source>
</property>
<property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>.3</value>
</property>
我也有同样的效果,发现让系统每个工作节点有更多的可用内存,并减少应用程序所需的内存有帮助。
我的yarn-site.xml中的设置(在我的非常小的实验箱上):
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2200</value>
<description>Amount of physical memory, in MB, that can be allocated for containers.</description>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>500</value>
</property>
也有同样的问题,对我来说,这是一个满硬盘(>90%满)的问题。清洁空间节省了我。
YARN上的作业卡在accepted
状态通常是因为可用资源不足。您可以在http://resourcemanager:port/cluster/scheduler
:上查看
- 如果
Memory Used + Memory Reserved >= Memory Total
,则内存不足 - 如果
VCores Used + VCores Reserved >= VCores Total
,则VCores不够
它也可能受到诸如CCD_ 5之类的参数的限制。
我使用的是Hadoop3.0.1。我遇到过同样的问题,在提交的映射reduce作业在ResourceManager web UI中显示为卡在ACCEPTED状态。此外,在同一个ResourceManager web界面中,在Cluster metrics
->Memory used
为0的情况下,Total Memory
为0;Cluster Node Metrics
->Active Nodes
为0,尽管NamedNode web UI完美地列出了数据节点。在集群上运行yarn node -list
没有显示任何NodeManager。事实证明,我的NodeManager没有运行。在启动NodeManager之后,新提交的映射reduce作业可以进一步进行。它们不再停留在ACCEPTED状态,并进入"RUNNING"状态
我也遇到了同样的问题。我改变了上面答案中提到的每一种配置,但仍然没有用。在此之后,我重新检查了集群的运行状况。在那里,我观察到我唯一的一个节点处于不健康状态。这个问题是由于我的/tmp/haooop-hadoopUser/nm本地目录中缺少磁盘空间。可以通过在端口8032处的资源管理器web UI处检查节点健康状态来检查相同情况。为了解决这个问题,我在yarn-site.xml中添加了以下属性。
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>98.5</value>
</property>
重新启动hadoop守护进程后,节点状态变为正常,作业开始运行
将属性yarn.resourcemanager.hostname添加到iarn-site.xml中的主节点主机名,并将此文件复制到集群中的所有节点以反映此配置,这为我解决了问题。