hive中执行sql后一直是ACCEPTED: waiting for AM container to be allocated, launched and register with RM.
·
查看yarn的后台任务都是显示的ACCEPTED:

可以执行建库和建表以及select * 的操作,但是其它的操作就一直卡住了:
原因与解决:
看了网上的博客资料,先是对namenode进行格式化之后重启hive但也还是不行
看日志怀疑是没有资源可分配?
于是又把给虚拟机的内存从2G增加到8G,并且在hive-site.xml中又增加了对调度器最小和最大资源分配的设置:
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>256</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
并在capacity-scheduler.xml中调高了yarn.scheduler.capacity.maximum-am-resource-percent参数的比例:
<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>
但是也还是不行,发现Scheduler中可用的内存和CPU都是0
折腾了好久,根因没有找到,最后是怎么解决的?
把hive卸载,把MySQL中hive的元数据库删掉,对namenode重新进行格式化(格式化之前记得先把/home/hadoop/app/hadoop-2.7.0/data/tmp/dfs路径下的文件夹都删掉,不然后面DataNode起不来)
格式化完NameNode之后,重装hive,然后初始化hive的MySQL元数据库,之后再启动hdfs和yarn,最后启动hive,并进行建表和insert插入操作,这次运行成功了,任务不再是ACCEPTED状态了,查看后台Scheduler中也有数据了:
问题解决。
更多推荐
所有评论(0)