hive出现 FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
时间: 2023-09-29 10:03:24 浏览: 138
这个错误通常是由于Hive metastore服务未能启动或无法连接到Hive metastore服务导致的。请按照以下步骤进行排查:
1. 确认Hive metastore服务已启动。可以使用以下命令检查:
```
ps -ef | grep metastore
```
如果没有结果,则说明metastore服务未启动。可以使用以下命令启动metastore服务:
```
hive --service metastore &
```
2. 确认Hive metastore服务的配置是否正确。可以检查hive-site.xml文件中的以下属性是否正确设置:
```
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://<mysql_server>:<mysql_port>/<metastore_db>?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveuser</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivepassword</value>
<description>password to use against metastore database</description>
</property>
```
注意:上述示例中的属性值需要替换为实际的值。
3. 确认Hive metastore服务能够正常连接到metastore数据库。可以使用以下命令测试:
```
mysql -h <mysql_server> -P <mysql_port> -u <hiveuser> -p<hivepassword> -e "show databases;"
```
如果连接失败,则需要检查连接属性是否正确,并确保metastore数据库已创建。
4. 如果以上步骤都没有解决问题,则可能是由于Hive metastore服务版本与Hive客户端版本不兼容导致的。请检查版本兼容性,并升级metastore服务或Hive客户端以解决问题。
阅读全文