本文章向大家介绍Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查,主要包括Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查使用实例、应用技巧、基本知识点总结和需要注意事项。
问题出现的原因:
最近在整合spark与hive,新安装spark-2.3.3以客户端的方式访问hive数据,运行方式使用spark on yarn,但是在配置spark读取hive数据的时候,这里直接把hive下的hive-site.xml复制到spark目录下,启动了一次spark,上面的问题就出现了。
问题排查:
1、进入hive命令行时,会报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
2、首先查看服务器上/tmp/${user}/hive.log文件,hive执行日志。
3、发现日志中的报错信息:
Caused by: MetaException(message:Hive Schema version 2.1.0 does not match metastore's schema version 1.2.0 Metastore is not upgraded or corrupt)
这里的意思是,hive的版本是2.1.0,但是元数据中的版本信息是1.2.0,因此报错。
到hive的元数据库里查了下version表里的数据,确实版本是1.2.0
解决方法:
一、修改元数据
mysql> select * from VERSION;
+--------+----------------+--------------------------------------+
| VER_ID | SCHEMA_VERSION | VERSION_COMMENT |
+--------+----------------+--------------------------------------+
| 1 | 2.1.0 | Set by MetaStore wjy@192.168.138.102 |
+--------+----------------+--------------------------------------+
1 row in set (0.00 sec)
修改源数据版本
update VERSION set SCHEMA_VERSION='2.1.0' where VER_ID=1;
二、修改hive-site.xml文件配置
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
到此,应该是完美解决了。