第一次遇見:
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>