hive insert操作卡死

第一次遇见:

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/weixin_43190860/article/details/93470025?utm_source=distribute.pc_relevant.none-task

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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章