metastore_db创建地方我跑蜂巢(metastore_db created wherever

2019-07-04 06:09发布

文件夹metastore_db是在我运行蜂巢查询的任何目录中创建。 有没有什么办法只有一个metastore_db在规定的位置,并从正在创建全国各地的地方停下来? 它有什么关系hive.metastore.local

Answer 1:

这里感兴趣的属性是javax.jdo.option.ConnectionURL 。 此属性的默认值是jdbc:derby:;databaseName=metastore_db;create=true 。 此值指定您将使用嵌入式Derby作为您的蜂房metastore和metastore的位置metastore_db 。 此外,如果它不存在的metastore将被创建。

需要注意的是metastore(位置metastore_db )是相对路径。 因此,它被创建你来自哪里,推出蜂巢。 如果您更新该属性(在蜂房的site.xml)是,说一个位置的绝对路径,该metastore将从该位置被使用。

我必须警告你,尽管嵌入式德比metastore只能由一个用户在一次访问。 蜂巢使用嵌入式Derby默认为允许开箱体验,为便于测试。 对于任何实际系统中,我会建议移动到单机像MySQL或PostgreSQL“真正”的数据库。 如何做到这一点可说明这里 。



Answer 2:

由于您使用的嵌入式Derby模式。 要使用单metastore_db位置。 您需要更改以下属性。

<property>
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:derby:;databaseName=/<file-location>/metastore_db;create=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

我希望这能帮到您。 欲了解更多详情请点击这里



文章来源: metastore_db created wherever I run Hive
标签: hive hiveql