如何防止`hadoop fs rmr<;uri>;`从创建$folder$文件开始?
我们正在使用Amazon的Elastic Map Reduce执行一些大型文件处理作业。作为我们工作流程的一部分,我们偶尔需要从S3中删除可能已经存在的文件。我们使用hadoop fs接口执行此操作,如下所示:如何防止`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无法处理这些文件,因此工作流中的后续步骤可能
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