如果生成子目录时父目录不存在,我希望hdfs命令失败。当我使用 FileSystem#mkdirs
,我发现没有出现异常,而是创建了不存在的父目录:
import java.util.UUID
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}
val conf = new Configuration()
conf.set("fs.defaultFS", s"hdfs://$host:$port")
val fileSystem = FileSystem.get(conf)
val cwd = fileSystem.getWorkingDirectory
// Guarantee non-existence by appending two UUIDs.
val dirToCreate = new Path(cwd, new Path(UUID.randomUUID.toString, UUID.randomUUID.toString))
fileSystem.mkdirs(dirToCreate)
如果没有检查是否存在的繁琐负担,如果父目录不存在,如何强制hdfs抛出异常?
1条答案
按热度按时间y53ybaqx1#
文件系统api不支持这种行为。相反,
FileContext#mkdir
应使用;例如:上面的示例将抛出: