23

フォルダmetastore_dbは、Hiveクエリを実行する任意のディレクトリに作成されます。定義された場所に1つだけをmetastore_db配置し、それがあらゆる場所で作成されないようにする方法はありますか?それは何か関係がありhive.metastore.localますか?

4

2 に答える 2

39

ここで関心のあるプロパティはですjavax.jdo.option.ConnectionURL。このプロパティのデフォルト値はですjdbc:derby:;databaseName=metastore_db;create=true。この値は、埋め込みderbyをHiveメタストアとして使用し、メタストアの場所が。であることを指定しますmetastore_db。また、メタストアがまだ存在しない場合は作成されます。

メタストアの場所(metastore_db)は相対パスであることに注意してください。したがって、Hiveを起動した場所から作成されます。このプロパティ(hive-site.xml内)を更新して、たとえば場所への絶対パスにすると、メタストアはその場所から使用されます。

ただし、埋め込まれたderbyメタストアには、一度に1人のユーザーしかアクセスできないことに注意する必要があります。Hiveは、デフォルトで埋め込みダービーを使用して、すぐに使用できるエクスペリエンスを実現し、テストを容易にします。実際のシステムでは、MySQLやPostgreSQLなどのスタンドアロンの「実際の」データベースに移行することをお勧めします。その方法については、こちらをご覧ください

于 2012-11-30T19:40:12.517 に答える
5

埋め込みダービーモードを使用しているため。単一の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>

これがお役に立てば幸いです。詳細については、ここをクリックしてください

于 2015-03-02T07:18:18.333 に答える