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