hadoop fs -rm -skipTrash 不起作用

Evg*_*nii 5 hadoop rm distcp

我使用以下命令将一些文件从目录复制到目录

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/
Run Code Online (Sandbox Code Playgroud)

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

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

hadoop fs -rm -skipTrash /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/*
Run Code Online (Sandbox Code Playgroud)

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

我试过

hadoop fs -ls /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/
Run Code Online (Sandbox Code Playgroud)

并看到一些应该删除的文件仍然存在。然后我跑

hadoop fs -rm -skipTrash /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/*
Run Code Online (Sandbox Code Playgroud)

十几次,总是有更多的文件要删除(仍然有)。怎么了?

每次我以色调刷新页面时,文件数量都会增加。哈普。

编辑

似乎在命令行中停止 distcp 实际上并没有终止工作。这就是原因。

小智 6

你可以使用这个 “-R”:

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

hadoop fs -rm -R -skipTrash /apps/hive/warehouse/arstel.db/fair_usage/fct_evkuzmin04/file_mta/*
Run Code Online (Sandbox Code Playgroud)


San*_*ngh 5

Ctrl + C不会杀死纱线应用程序。distcp使用MapReduce模型复制数据。当您运行distcp命令时,它会提交纱线应用程序以在 hadoop 上运行以复制数据。您需要终止纱线应用程序以停止distcp复制过程。

杀死纱线应用程序的命令:

yarn application -kill <application_id>