hadoop S3n空目录未被删除

时间:2012-07-09 08:47:12

标签: hadoop amazon-s3

我正在使用Hadoop FileStatus API来确定文件夹是否为空以便删除目录。

要确定我是否在s3n上有一个空目录,我所做的是检查FileStatus []长度,如果它等于零,那么我请求Hadoop文件系统通过fs.delete执行删除(path,false )。这里的False表示非递归删除请求。

对于FTP和HDFS,将按预期删除文件,然后删除包含这些文件的空目录。但对于S3n,空目录仍然存在。我不知道为什么会这样。

我有使用内存S3文件系统的本地单元/集成测试,这里删除按预期工作。但是,当针对真正的S3n文件系统运行代码时,它会失败(空目录未删除,但文件是)。

任何建议或指示都将非常感激。 谢谢。

1 个答案:

答案 0 :(得分:0)

由于您没有看到任何异常或错误消息,并且您的存储桶似乎没有启用版本控制,因此您应该尝试以下操作:

S3是一个平坦的"文件系统,并没有文件夹的概念。有可能长度为零只是因为没有具有该名称的文件。你所谓的"目录"实际上只是S3中的文件前缀。请查看this answer,因为它可能有助于澄清。