0
サブディレクトリを作成するときに親ディレクトリが存在しない場合、HDFSコマンドを失敗させたい。私はFileSystem#mkdirs
のいずれかを使用すると、私の代わりに、存在しない親ディレクトリを作成し、例外が上がっていないことを見つける:HadoopのHDFS APIが親ディレクトリを作成しないようにするにはどうすればよいですか?
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を強制することができます親ディレクトリが存在しない場合は例外ですか?
をすることができますわかりません。ドキュメントは、それが 'mkdir -p'と同等であると言っていますhttps://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#mkdirs-org.apache.hadoop.fs.Path- org.apache.hadoop.fs.permission.FsPermission- –
@ cricket_007 APIの他の部分がほぼ同等の機能を果たしているかどうかはわかりませんでした。 – erip
まあ、 'hdfs dfs -mkdir'のCLIは、それ自身の親ディレクトリを作っていません...私はそのコードを見なければならないでしょう。 –