今天在学习Hive事务表的时候,在执行一个update操作的时候,可能是由于内存不足而导致HS2崩溃,然后重新执行update操作后发现,本来是一个半分钟以内就能够执行完的MR程序,结果运行了六七分钟还没执行完毕。然后查看日志发现以下现象
可以发现HS2的Handler一直在进行奇怪的重复读写操作,而且发现Yarn上也没有正在运行的MR作业,但是发现日志还在不断地输出,甚至发现在进行drop这张事务表的操作也出现了同样的情况。最后是重新建了一张事务表,重新update或者是drop才发现成功了。
估计是之前正在运行update的时候HS2崩溃了,有一些临时文件之类的没有被删除,而导致出现死循环一样的操作。
第二天终于发现问题在HIVE_LOCKS这张表上,由于上述session中断后,锁没有被释放,导致drop操作无法结束,最后将MySQL的HIVE_LOCKS表下的锁数据删除就恢复正常了