フォルダmetastore_db
は、Hiveクエリを実行する任意のディレクトリに作成されます。定義された場所に1つだけをmetastore_db
配置し、それがあらゆる場所で作成されないようにする方法はありますか?それは何か関係がありhive.metastore.local
ますか?
2 に答える
ここで関心のあるプロパティはです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などのスタンドアロンの「実際の」データベースに移行することをお勧めします。その方法については、こちらをご覧ください。
埋め込みダービーモードを使用しているため。単一の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>
これがお役に立てば幸いです。詳細については、ここをクリックしてください