首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Java API绕过垃圾桶从HDFS中删除文件

使用Java API绕过垃圾桶从HDFS中删除文件
EN

Stack Overflow用户
提问于 2018-08-10 13:12:10
回答 1查看 800关注 0票数 4

我正在尝试使用Java删除HDFS文件。由于我的文件大小大于所配置的垃圾桶限制,我无法执行删除操作。下面是用于删除文件的代码片段。我知道在HDFS shell命令中有skipTrash选项。请让我知道,如果有任何类似的Java是可用的,这将绕过垃圾桶,同时删除文件。

代码语言:javascript
复制
import org.apache.hadoop.fs.*;

hdfs.delete(output, true);
EN

回答 1

Stack Overflow用户

发布于 2020-01-28 16:40:58

我知道有点晚了,但也许能帮到别人。

我也在尝试解决同样的问题,但在文档中或其他任何地方都很难找到答案。基本上,如果你使用你提供的代码(为了清楚起见,我将填写它),我相信垃圾桶会被跳过,文件会被简单地从HDFS中删除(在这个特定的例子中是递归的)。

代码语言:javascript
复制
import org.apache.hadoop.fs.FileSystem;

FileSystem hdfs = FileSystem.get(config);

boolean recursive = true;
hdfs.delete(pathToFiles, recursive);

如果你想把文件移到垃圾桶里,似乎你必须在删除之前这样做。为此,你需要这样做:

代码语言:javascript
复制
import org.apache.hadoop.fs.Trash;
import org.apache.hadoop.fs.FileSystem;


FileSystem hdfs = FileSystem.get(config);
boolean skipTrash = false;

if (!skipTrash) {
    Trash trashTmp = new Trash(hdfs, configuration);
    trashTmp.moveToTrash(pathToFiles);
}
hdfs.delete(pathToFiles, recursive);

记住处理这个操作可能抛出的IOException。

我在JavaSED上找到了这个例子(源代码,例子,讨论):http://www.javased.com/index.php?api=org.apache.hadoop.fs.Trash。还有更多的例子展示了垃圾桶和删除的用法,所以请查看它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51779362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档