写作时
> 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
请为此提供解决方案吗?
答案 0 :(得分:0)
运行此命令sub hive目录;
bin/schematool -initSchema -dbType derby
因此,请确保服务已启动;
start-all.sh
此命令运行。
答案 1 :(得分:0)
可能是由于默认设置:/ 用户/ hive /仓库(在hive-site.xml中)未正确创建或未授予权限。 (请注意,这是**用户,而不是 usr )
如果进行手动设置,可能是元凶!
1)如果需要,您可以首先检出hive-site.xml(在我的情况下为$ HIVE_HOME / conf,位于/ usr / local / hive / conf),但这仍然是初始设置的默认值>
2)使用 hadoop fs -ls / user / hive / warehouse 检查Hadoop中的路径是否存在?
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也如上所述正确设置