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>

 

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