Hive错误: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.Session

1. 今天在使用hive客户端时,执行查询语句报错如下:

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

在这里插入图片描述

2. 原因分析:服务端未开启服务,在hive服务端使用命令:hive --service metastore &
再在客户端使用hive命令连接 (注意:客户端与服务端一般不在同一节点)
在这里插入图片描述

3. 网上其他解决方案:hive的数据库MySQL在安装的时候没有初始化
解决方案:初始化数据库,命令:schematool -dbType mysql -initSchema
在这里插入图片描述

初始化时又遇到下面的错误

Error: Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED!
Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
Use --verbose for detailed st

在这里插入图片描述
3. 原因分析:初始化的时候就会创建数据库hive,第一次初始化就已经生成,如果后面继续初始化还会继续执行这一步,但是执行到这时不能创建名字相同的数据库,就会报错以上错误信息,解决办法就是打开我们的mysql数据库,将这个hive数据库删除,继续初始化就可以成功了。

(1) 查看库名:show databases;
在这里插入图片描述

(2) 删除数据库:drop database hive;
在这里插入图片描述
(3) 重新执行初始化命令:schematool -dbType mysql -initSchema 即可成功
在这里插入图片描述

4. 检查:在hive的lib下加入适合自己节点的mysql驱动
在这里插入图片描述

5. 在hive服务端使用命令:hive --service metastore &,客户端中使用hive连接,即可正常使用hive
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44422604/article/details/107304606