FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeExcepti

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的元数据存在mysql里面,所以如果你没有弄好mysql的权限,你的show databases是不可以用的。

解决办法:

1.首先检查你自己的hive-site.xml配置文件中的mysql账号和自己的创建hive_database的mysql账号是否一致。若不一致修改为创建了hive数据库的mysql账号。

<property>
<!-- 数据库的用户名 -->
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>  
<description>username to use against metastore database</description>
</property>

<property>
<!-- 数据库的密码 -->
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
<description>password to use against metastore database</description>
</property>

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeExcepti

2.mysql的权限问题
在mysql中:

grant all privileges on . to ‘root’@’%’ identified by ‘123’ with grant option;
grant all privileges on . to ‘root’@‘hadoop1’ identified by ‘123’ with grant option;
flush privileges; 刷新权限

3.hive的服务端没有打开
1)hive --service metastore &
2)然后Ctrl+C
3)再hive,进去
试试看会不会报错