第一次遇见:
hive,执行一个简单的insert操作时
卡在了 kill command这里
看了下rm,nm什么都启动起来了,怀疑mp出错了,
随便运行了一个官方案例,果然不对,一直卡在running job这里。
无语,我什么也没动啊,昨天insert还好好的。
查看了一下nodemanager的log,没有什么问题,又查看了resourmanager的log
问题就出在红框这里:
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue: maximum-am-resource-percent is insufficient to start a single application in queue, it is likely set too low. skipping enforcement to allow at least one application to start
WARN org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue: maximum-am-resource-percent is insufficient to start a single application in queue for user, it is likely set too low. skipping enforcement to allow at least one application to start
既然maximum-am-resource-percent is insufficient,我就去修改下:
先打开Capacity Scheduler
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
配置下capacity-scheduler.xml ,我改成了0.6
<property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.6</value>
<description>
Maximum percent of resources in the cluster which can be used to run
application masters i.e. controls number of concurrent running
applications.
</description>
</property>
</property>
还是不行,把yarn.nodemanager.resource.memory-mb调大:
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
并没有用。还是报一样的警告。
所以我没有解决这个问题,我直接恢复快照到解放前了。
网上还有一些解决方法,比如说格式化namenode,设置mapreduce.map.memory.mb等等,我没有试了。
下面是找的一些资料,没准你就弄好了:
http://www.hainiubl.com/topics/309
http://wenda.chinahadoop.cn/question/2385
https://blog.csdn.net/qq_42341587/article/details/90724179
https://blog.csdn.net/atixujie/article/details/72853583
以上都是针对我的log里显示 maximum-am-resource-percent is insufficient to start a single application in queue.......的解决方法,hive卡在insert和mapreduce卡在runningjob还可能有别的原因,比如rm没有起起来,我看还有说host的,自己看log先排查一下。
—————————————————————————————————————————————————————
第二次遇见:
hive操作使用聚集函数卡在mapreduce,查看resourcemanager的log可以看到报错:
找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
同时也报了上面第一次遇见时的警告。
只不过第一次遇见的时候我的hive版本是1.7,hadoop版本是2.7,现在hive是3.1,hadoop是3.2。上一次是一直可以insert,MR,突然不行,这一次是第一次做hive要走MR的操作出错。
关于"找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster"的解决方案:
1 执行 hadoop classpath
2 将classpath复制到yarn-site.xml中
(value就是上面输出的classpath)
之后重启hdfs,yarn,可以正常执行聚集函数了,也没有报上面说的第一次遇见的警告。
但是试了一下一个简单的insert操作,一直卡在map=100%,reduce=0%这里。log里没有任何警告和错误,就是一直卡在这里,解决方法:
修改yarn-site.xml:
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>