2017-04-04 6 views
0

こんにちは私はHIVEとHDFSに比較的新しいです。 Microsoft Azureを使用して仮想マシンを作成しました。私はパテとAmbari Sandboxを使ってこれにログインします。テーブルが落ちたときにHDFSメモリが削除されないHIVE

Ambariで私はHIVEを使用していますが、すべて正常に動作していますが、メモリ割り当てに大きな問題があります。 私はHiveでテーブルをドロップすると、私は 'Hive View'に入り、ごみ箱からテーブルを削除します。しかし、これはHDFS内のメモリを解放していません。

テーブルは現在、HIVEデータベースとゴミ箱フォルダから削除されましたが、メモリは解放されていません。

どこからテーブルを削除する必要がありますか?

ありがとうございます。

+0

「メモリ」ではなく、ディスク容量です。正確に何をチェックしていますか?... –

答えて

0

DESCRIBE FORMATTED <table_name>コマンドを試してください。 HDFSにファイルの場所が表示されます。この場所が空であることを確認してください。

+0

私に戻ってくれてありがとう。テーブルが削除されたため、このコマンドは機能しません。しかし、私は同じデータベース内のテーブルに使用して、それはアプリケーション/ハイブ/ウェアハウス/ <データベース名>/

の方向に私を指します。しかし、これは私が削除したテーブルが削除される前のテーブルです。削除されたテーブルはもう存在しません。 – Amy

0

@DuduMarkovitzが言ったように、私はまたHDFS memoryあなたが言ったものがわからないが、私はあなたがHDFS上のテーブルデータファイルであると言いたいと思います。

私の経験によれば、ハイブでドロップしたテーブルは、内部テーブルではなく外部テーブルです。以下の機能をHiveのExternal Tablesの公式文書から入手できます。

EXTERNALキーワードを使用すると、テーブルを作成し、ハイブは、この表のデフォルトの場所を使用しないように場所を提供することができます外部表 。これはすでにデータが生成されている場合に便利です。 EXTERNALテーブルを削除するとき、テーブル内のデータはファイルシステムから削除されません。

interalテーブルと外部テーブルの違い、あなたはhereを参照することができます。

外部テーブルを削除した後に外部テーブルデータをHDFSからリサイクルしたい場合は、HDFSに対して以下のように手動で削除する必要があります。

hadoop fs -rm -f -r <your-hdfs-path-url>/apps/hive/warehouse/<database name>/<table-name> 

希望します。

+0

お返事ありがとうございます。残念ながら私はhadoop fs -rm -f -r /apps/hive/warehouse/<データベース名>/を使用してテーブルを削除しましたが、HDFSまだ能力があります。メモリがいっぱいであることがわかっている場所はSummaryセクションにあり、ディスク使用量(Non DFS Used)は18.8GB/42GBです。削除されたテーブルをゴミ箱から削除した場合、これは9GB下がっているはずです。ディスク使用量(使用されているDFS)は15.8 GBですが、これを減らすことはできません。 – Amy

関連する問題