【日常踩坑】解决hive运行到kill command这一步之后卡住不动的问题

【日常踩坑】解决hive运行到kill command这一步之后卡住不动的问题

如下图,hive提交聚合查询的时候,在这步卡主不动假死,也不报错,log也查不出来,
但是当运行像select*from students;这种语句是却能够查询到数据,
在这里插入图片描述

经过排查,解决思路如下:

  1. select * from students 语句没有问题,但一旦执行 select count() from students where gender=‘男’ 语句后就不继续执行,原因是select * from students 语句是直接在hive数据库中直接执行的,select count() from students where gender=‘男’ 语句却需要调用了mapreduce来执行。

  2. 那么调用了mapreduce 之后为什么就卡在哪里不动呢,直接执行了mapreduce的wordcount后发现相同的情况。

  3. 经过上述排查,那么肯定是hadoop配置不对了,由于mapreduce的都是在datanode上执行的,所以初步认定为namenode

    和datanode之间没有互相连通。

  4. 于是检查 namenode的hosts文件和slave文件,修改为对应的主机名及ip之后,重新运行wordcount,但是仍旧不行。

  5. 重新运行hive select count(*) from students where gender=‘男’ 后,依旧是在哪里卡住不动。

  6. 经过上述过程,那么说明不是namenode和datanode之间的连通问题了,难道是因为是Hive没有连接上mapreduce。

  7. 查看配置文件hive-env.sh,发现并不是这个问题。
    在这里插入图片描述

  8. 那么可能就是内存方面的原因了,经过检查是由于yarn的物理可用内存太小,改大一些就可以了。

.<property>

    <name>yarn.nodemanager.resource.memory-mb</name>

    <value>20480<alue>
</property>
<property>

   <name>yarn.scheduler.minimum-allocation-mb</name>

   <value>2048<alue>

</property>

<property>

    <name>yarn.nodemanager.vmem-pmem-ratio</name>

    <value>2.1<alue>

</property>
  1. 重新运行hive select count(*) from students where gender=‘男’ 后,查询成功,ok问题解决。
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值