hadoop fs -rm -skipTrash 不起作用

hadoop fs -rm -skipTrash doesn't work

我使用

将一些文件从一个目录复制到另一个目录
hadoop distcp -Dmapreduce.job.queuename=adhoc /user/comverse/data/$CURRENT_DATE_NO_DASH_*/*rcr.gz /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_rcr/

我在 scipt 完成之前停止了它,剩下的很多 .distcp.tmp.attempt 和 dst 目录中完成移动的文件

现在我想清理dst目录。 运行宁后

hadoop fs -rm -skipTrash /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/*

大部分文件都被删除了,但有些文件仍然存在(至少 HUE 显示的是这样)。奇怪的是,我每次运行hadoop fs -rm -skipTrash,根据HUE,剩余文件数的变化都是或多或少。

我试过了

hadoop fs -ls /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/

看到一些应该删除的文件还在。那我运行

hadoop fs -rm -skipTrash /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/*

十几次,总是有更多的文件要删除(还有)。发生了什么事?

还有

每次我在hue中刷新页面,文件的数量都会增加。哈尔普

编辑

似乎在命令行中停止 distcp 并没有真正终止工作。就是这个原因。

Ctrl + C 不会终止 yarn 应用程序。 distcp 使用 MapReduce 模型复制数据。当您 运行 distcp 命令时,它将 yarn 应用程序提交到 hadoop 上的 运行 以复制数据。您需要终止 yarn 应用程序才能停止 distcp 复制过程。

杀死 yarn 应用程序的命令:

yarn application -kill <application_id>

你可以使用这个 "-R":

这会从您的 hdfs 位置删除所有文件。

hadoop fs -rm -R -skipTrash /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/*