报错内容:

hive> show databases;

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

当前版本说明:

Hive:

apache-hive-2.3.3-bin

Spark:

spark-2.2.0-bin-hadoop2.7

原因:安装了Hive,然后于Spark共用Mysql上的元数据,在使用spark-sql执行后,Mysql上的版本会发生变化

报错:SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:Un_hive

报错:SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:Un_mysql_02

发现版本已经发生了变化了!

解决一:

降低Hive的版本

解决二(此处使用):

更新Mysql里面的版本号

​UPDATE VERSION SET SCHEMA_VERSION='2.3.0' where VER_ID=1;​

报错:SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:Un_spark_03

然后重新登录Hive,就可以了!

学习上会出现这种情况而已,实际生产上我们不会出现的,放心,因为这只是学习。

附带一篇通过删元数据来解决问题的教程​

作者简介:​邵奈一​

大学大数据讲师、大学市场洞察者、专栏编辑

公众号、微博、:​​邵奈一​

​邵奈一的技术博客导航​