如何防止`hadoop fs rmr<;uri>;`从创建$folder$文件开始?

如何防止`hadoop fs rmr<;uri>;`从创建$folder$文件开始?,hadoop,Hadoop,我们正在使用Amazon的Elastic Map Reduce执行一些大型文件处理作业。作为我们工作流程的一部分,我们偶尔需要从S3中删除可能已经存在的文件。我们使用hadoop fs接口执行此操作,如下所示: hadoop fs -rmr s3://mybucket/a/b/myfile.log 这将适当地从S3中删除该文件,但在它的位置上会留下一个名为“S3://mybucket/a/b_$folder$”的空文件。如中所述,Hadoop的Pig无法处理这些文件,因此工作流中的后续步骤可能

我们正在使用Amazon的Elastic Map Reduce执行一些大型文件处理作业。作为我们工作流程的一部分,我们偶尔需要从S3中删除可能已经存在的文件。我们使用hadoop fs接口执行此操作,如下所示:

hadoop fs -rmr s3://mybucket/a/b/myfile.log
这将适当地从S3中删除该文件,但在它的位置上会留下一个名为“S3://mybucket/a/b_$folder$”的空文件。如中所述,Hadoop的Pig无法处理这些文件,因此工作流中的后续步骤可能会阻塞此文件

(注意,我们是否使用
-rmr
-rm
或者是否使用
s3://
s3n://
作为方案似乎并不重要:所有这些都展示了所描述的行为。)


如何使用
hadoop fs
接口从S3中删除文件并确保不会留下这些麻烦的文件?

我无法确定是否可以以这种方式使用hadoop fs接口。但是,s3cmd接口做了正确的事情(但一次只针对一个键):


这需要首先使用AWS凭据配置~/.s3cfg文件
s3cmd--configure
将以交互方式帮助您创建此文件。

我无法确定是否可以以这种方式使用hadoop fs接口。但是,s3cmd接口做了正确的事情(但一次只针对一个键):


这需要首先使用AWS凭据配置~/.s3cfg文件
s3cmd--configure
将以交互方式帮助您创建此文件。

这是在Hadoop中实现S3支持的方式,请参见:


所以使用s3cmd

这是如何在Hadoop中实现S3支持,请参见以下内容:

所以使用s3cmd

s3cmd del s3://mybucket/a/b/myfile.log