在运行在边缘节点上的java应用程序中,我需要删除hdfs文件夹(如果存在)。在运行mapreduce作业(使用spark)并在文件夹中输出之前,我需要这样做。
我发现我可以用这个方法
org.apache.hadoop.fs.FileUtil.fullyDelete(new File(url))
但是,我只能使用本地文件夹(即运行计算机上的文件url)。我试着用这样的方法:
url = "hdfs://hdfshost:port/the/folder/to/delete";
与 hdfs://hdfshost:port
作为hdfs namenode ipc。我把它用于mapreduce,所以它是正确的。但是它什么也做不了。
那么,我应该使用什么url,或者有其他方法吗?
注意:这里是一个简单的项目。
3条答案
按热度按时间bybem2ql1#
如果需要删除目录中的所有文件:
1) 检查目录中有多少文件。
2) 以后把它们全部删除
祝你好运:)
5lwkijsr2#
我是这样做的:
你不需要
hdfs://hdfshost:port/
在文件路径中svmlkihl3#
这对我有用。
只需在我的wordcount程序中添加以下代码即可:
你需要加上
hdfs://hdfshost:port
显式获取分布式文件系统。否则代码将只适用于本地文件系统。