2017-03-08 44 views
2

我正在使用hadoop 2.7.3和配置單元2.1.1。覆蓋到配置單元管理表中丟失的文件

我在HDFS中有一些8-9文件。我創建了一個內部配置單元表。我在該表中首先加載了8個文件。對這些數據做了一些操作。

之後,我通過覆蓋到該表中加載第二個文件。

load data inpath '/path/path1/first.csv' into table ABC; 

load data inpath '/path/path1/second.csv' overwrite into table ABC; 

對第二個數據做了一些操作。

然後我加載第三個文件,等到最後一個文件使用「overwrite into」。

現在,我看到所有這些文件都不存在在那裏的原始位置。另外,在/ user/hive/warehouse/ABC只有最後一個文件在那裏。

那些以前的文件去了哪裏?他們是否因爲覆蓋到配置單元表而丟失?我做了「hdfs dfs -ls -R/| grep "filename」但找不到我的文件。

回答

1

LOAD DATA INPATH將文件從源HDFS路徑移動(不復制)到表倉庫路徑。

OVERWRITE將刪除表中已經存在的文件(如果啓用了HDFS廢紙簍,將文件移動到Trash)並替換爲路徑中給出的文件。

1

LOAD DATA LOCAL INPATH副本的文件。
LOAD DATA INPATH移動的文件。
overwrite在移入新文件之前刪除現有文件。

+0

任何方式,我可以恢復這些刪除的文件? – earl

+0

不可能,除非你啓用了HDFS垃圾箱,然後 - '也許'。 –