我是蜂巢的首发。当我尝试执行任何配置单元命令时:
hive>SHOW TABLES;
它显示以下错误:
FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database '/var/lib/hive/metastore/metastore_db', see the next exception for details.
NestedThrowables:
java.sql.SQLException: Failed to start database '/var/lib/hive/metastore/metastore_db', see the next exception for details.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
答案 0 :(得分:5)
看起来像德比锁定问题。您可以通过删除目录/var/lib/hive/metastore/metastore_db
中的锁定文件来临时解决此问题。但是这个问题也将在未来发生
sudo rm -rf /var/lib/hive/metastore/metastore_db/*.lck
使用默认的hive Metastore嵌入式derby,不可能同时启动多个hive实例。通过将hive Metastore更改为mysql或postgres服务器,可以解决此问题。
请参阅以下cloudera文档以了解如何更改hive Metastore
答案 1 :(得分:2)
当我忘记在同一节点上运行的spark-shell
的另一个实例时,我遇到了类似的错误。
答案 2 :(得分:1)
在hive-site.xml
文件夹下更新~/hive/conf
,如下面的名称/值,然后尝试:
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>
答案 3 :(得分:0)
在我的情况下,我需要创建一个目录并授予适当的权限:
$ sudo mkdir /var/lib/hive/metastore/
$ sudo chown hdfs:hdfs /var/lib/hive/metastore/