2016-07-04 13 views
0

私は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; 

答えて

0

ハイブがのHadoopすなわち、HDFSの上メタサービス層です/ HBase。ハイブが実際のデータを格納しない

、実際のデータは、HDFSまたはNoSQLのHBaseの/ Cassandraのようなストアに格納されています。

ハイブは、HDFSデータに対するテーブル管理/リレーショナルビューです。したがって、実際のデータはHDFSとメタデータに格納されます。つまり、データベース名、テーブル名、ビュー名などは、Hive Metastoreを使用してHiveに格納されます。

ハイブデータベースは、拡張子が.dbのHDFSのディレクトリです。すべてのデータベースディレクトリの場所は、HDFSのウェアハウスの場所、つまり/ user/hive/warehouse(hive.metastore.warehouse.dir)です。

Hiveを使用してデータベースを作成するので、Hiveは内部的にHDFSにディレクトリを作成し、このディレクトリをHiveメタデータのデータベース名にマップします。

+0

あなたの助けに感謝して、なぜ私の賞賛の "データベースの記述"は、データベースが "hdfs:/ foo/bar"ではなく "file:/user/hive/warehouse/cx.db"のようなローカルファイルシステムに保存されていることを示しています" – BeeNoisy

+0

HiveサービスがHDFSに接続されているかどうか確認してください。 Hive CLI/Beelineでこのパラメータの値を確認します。つまり、hive.metastore.warehouse.dirを設定します。 – Naga

+0

ハイブのDBはすでにHDFS上にあると思います。 '/ user'ディレクトリは一般にHDFS上にのみ表示されます。 'hdfs dfs -ls -R/user/hive/warehouse'を使って、HDFS上のdbの場所を確認してください。 db関連のすべてのファイルをリストする必要があります。 – daemon12

関連する問題