我正在运行一个本地hadoop集群,并尝试同时提交两个作业,但我的第一个作业通过,第二个作业没有,并保持在UNASSIGNED状态,直到第一个完成。我有一种预感,这是一个记忆问题,但我不能完全解决它。以下是我为容器、映射器、reduce、jvm等设置的值。
yarn.nodemanager.resource.memory-mb = 40960
yarn.scheduler.minimum-allocation-mb = 4096
yarn.scheduler.maximum-allocation-mb = 10240
mapreduce.map.java.opts = -Xmx5120m
mapreduce.reduce.java.opts = -Xmx5120m
mapreduce.map.memory.mb = 8192
mapreduce.reduce.memory.mb = 8192
其余属性获得默认值。我的价值观有什么问题吗?还有什么需要我更改的吗?
我解决了这个问题,这是因为" yarn.scheduler.capacity "。maximum-am-resource-percent"属性。我把它设置为一个更高的值
您的datanode/slave配置是什么?您已经指定为每个容器使用40GB内存。显然,您的datanode无法为多个容器分配内存。你可以根据你所拥有的调整这些设置。请参阅文档中的yarn-default.xml。谢谢你!