解决Hive运行hql提示Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
遇到的问题Hive在运行show databases时,报了如下错误:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient直接把错误原因复制到百度和google搜出来的解决方案都没有解决问题,后来查看hive日志,发现真实错误其实是:Caused by: org.apache....
遇到的问题
Hive在运行show databases时,报了如下错误:
Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
直接把错误原因复制到百度和google搜出来的解决方案都没有解决问题,后来查看hive日志,发现真实错误其实是:
Caused by: org.apache.hadoop.hive.metastore.api.MetaException: Hive Schema version 2.3.0 does not match metastore’s schema version 1.2.0 Metastore is not upgraded or corrupt
解决方法
连接mysql,选择hive数据库,修改VERSION表中的SCHEMA_VERSION为2.3.0,问题就解决了。
代码:
mysql:mysql -uroot -p (123456)
use hive;
select * from version;
update VERSION set SCHEMA_VERSION='2.3.0' where VER_ID=1;
这里用的是一位大佬的方法,链接:https://blog.csdn.net/qq_27882063/article/details/79886935
总结
在遇到问题的时候,很多时候控制台只是显示了什么错误,并没有告诉你是由什么引起的,所以应该查看日志。
查看日志的方法
进入hive的conf目录
查看hive-log4j2.properties文件,发现日志的输出目录如下:
我这里默认的就是/tmp/root下的hive.log,查看即可
使用其它东西的套路也是一样的,就是查看配置文件,看它的日志目录是在哪里,再查看即可。
更多推荐
所有评论(0)