我正在使用 Hive 进行一些数据处理。但是,每当我启动 Hive-Shell 时,它都会在当前目录中创建一个元存储,并且我无法访问我在另一个目录中创建的表。这对我来说有点烦人,我已经进入特定目录,然后启动 Hive-Shell 来查看我的表。
我尝试在 hive-default.xml 中配置路径,但没有成功。
谢谢
比使用 mysql 更好的选择是简单地修改 javax.jdo.option.ConnectionUrl。如果这是一个简单的开发环境,为什么不使用默认的 derby 呢?
默认值为:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
更改databaseName=metastore_db
为databaseName=/users/me/.metastore_db
。
就是这样。
此外,有关这方面的更多信息,请参阅http://www.hiregion.com/2010/01/hive-metastore-derby-db.html。
永远不要编辑 hive-default.xml,而是编辑 hive-site.xml。相关属性是 javax.jdo.option.ConnectionURL
您可能希望对 Metastore 使用 mysql 而不是 derby。关于这方面的一篇短文是http://blog.milford.io/2010/06/installing-apache-hive-with-a-mysql-metastore-in-centos/