私はApache Hive環境を設定しました。hdfsでhiveを使用するには?
そして、私はこのようなCXという名前のデータベースを作成しました:
hive>create database cx;
OK
Time taken: 0.32 seconds
hive (default)> show databases;
OK
cx
default
Time taken: 0.032 seconds, Fetched: 2 row(s)
hive (default)>
をそして、私はデータベースcx
の詳細を確認するために、コマンド「DATABASEの記述」を使用しています。私はそれがローカルファイルシステム上に存在することを発見しました:
hive> describe database cx;
OK
cx file:/user/hive/warehouse/cx.db root USER
Time taken: 0.038 seconds, Fetched: 1 row(s)
このデータベースをhdfsに保存する方法はありますか?
これは私のハイブ-site.xmlの設定です:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/user/hive/warehouse/metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
</configuration>
これは私の.hivercファイルです:
set hive.cli.print.current.db=true;
set hive.exec.mode.local.auto=true;
あなたの助けに感謝して、なぜ私の賞賛の "データベースの記述"は、データベースが "hdfs:/ foo/bar"ではなく "file:/user/hive/warehouse/cx.db"のようなローカルファイルシステムに保存されていることを示しています" – BeeNoisy
HiveサービスがHDFSに接続されているかどうか確認してください。 Hive CLI/Beelineでこのパラメータの値を確認します。つまり、hive.metastore.warehouse.dirを設定します。 – Naga
ハイブのDBはすでにHDFS上にあると思います。 '/ user'ディレクトリは一般にHDFS上にのみ表示されます。 'hdfs dfs -ls -R/user/hive/warehouse'を使って、HDFS上のdbの場所を確認してください。 db関連のすべてのファイルをリストする必要があります。 – daemon12