NEXT_LOCK_ID 始终有锁,无法删除数据。;1、停止hiveserver2,MetaStore 服务;发现还有锁;2、查看hive应用进程 ps -ef|grep hive,全部杀掉,锁释放;3、然后删除NEXT_LOCK_ID一条记录;4、重启hiveserver2,MetaStore;5、查询hive 恢复正常。
原因可能是多个进程同时 *** 作,导致hive事务上的bug,插进了2条一样的数据,导致元数据库被锁以下几个hive元数据表跟hive的事务有关:NEXT_LOCK_ID;next_compaction_queue_id;next_txn_id;以上三个表出问题就有可能会报以下错误: error in acquiring locks: error communicating with the metastore.hive 卡死的原因很多,这个是其中之一,基本都hive metastore会有一些关系,大家可以按这个方向去定位原因,就能更快速寻找到问题的根源。
在对hive表执行alert的时候,发现卡住不动了,退出后重进尝试drop表,依然卡住不动。找解决方案如下:
然而实际的情况不是这个样子的,我这边mysql里面明明就是utf-8,那么真相只有一个——锁表了!
那么只能自己想想办法了
进入hive,执行
查看锁表情况,发现如下
可以看到里面的那个Blocked By下的EXCLUSIVE
于是开始尝试解锁:
但是给我报错了:
但是再次使用 show locks 发现之前的锁没了
之前遇到怎么都删不掉的情况,解决办法是执行:
这个是hive的锁机制,可以暂时关掉,默认是true。关掉之后就可以删除表了,删掉之后可以再把它设置为true。但是会有遗留问题,我们会发现那个锁依旧没掉!
这时候需要去执行
然后再去unlock那个锁!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)