早晨发现Hive下发的语句无法执行,无论是手动还是去hiveserver2都不可以,是在令人头疼。
现象:
- ES的索引可以正常查询。
- hive对应的表无法查询、删除。
最后查看表的状态发现该表被锁了。
hive> show locks idx_index_line; OK hive_database_name@idx_index_line EXCLUSIVE Time taken: 0.172 seconds, Fetched: 1 row(s)
EXCLUSIVE是排他锁,这种情况下无法删除该表。
解决办法,在hive的服务器上通过jps命令查看进程,我这边大约有8个RunJar,挨个执行发现有个hiveserver2的经常的状态为Sl
ps -aux |grep 42400 hdfs 42400 0.1 0.7 4080028 926452 pts/9 Sl 10:15 0:29 /usr/java/default/bin/java
解决办法,重启hiveserver2。
重启后,查看表的状态,发现已经正常:
hive> show locks idx_index_line; OK Time taken: 1.149 seconds
此时,已经可以将数据存入Hive-ElasticSearch的映射表中了,后面使用的时候会发现经常遇到Lock这种问题,暂时还未从根本解决问题,等有空了再研究下,连续加班1个月,没时间折腾。