2017-03-08 43 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垃圾箱,然后 - '也许'。 –