【问题标题】:I can not run show databases; command on terminal for hive我无法运行显示数据库;蜂巢终端上的命令
【发布时间】:2017-09-25 13:20:30
【问题描述】:
当我写作时
> show databases;
在 Hive 中,我收到以下错误;
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
你能提供一个解决方案吗?
【问题讨论】:
标签:
database
hadoop
hive
metadata
hql
【解决方案1】:
运行这个命令子hive目录;
bin/schematool -initSchema -dbType derby
所以,请确保服务已启动;
start-all.sh
这个命令运行。
【解决方案2】:
这可能是由于默认设置:/user/hive/warehouse(在 hive-site.xml 中)未正确创建或未授予权限。 (请注意这是**用户,而不是usr)
如果您进行手动设置,这可能是罪魁祸首!
1) 如果需要,您可以先查看 hive-site.xml(在我的情况下位于 $HIVE_HOME/conf 是 /usr/local/hive/conf),但无论如何这是最初设置的默认值
2) 检查 Hadoop 中的路径是否使用:hadoop fs -ls /user/hive/warehouse 存在与否?
3) 使用以下命令创建 Hadoop 文件夹:hadoop fs -mkdir /usr/hive/wawrehouse 如果不存在,请查看使用 Hadoop fs -ls ... 的访问权限。 ……
4) 使用 Hadoop fs -chmod g+w /usr/........ 授予所需的权限
用户 vs usr,或者仓库的设置,可能是常见的原因
参考(来自 hive-site.xml):
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
注意:您还必须确保另一个 Hadoop 文件夹 /tmp 也如上所述正确设置