以下のスニペットで使用されるfileSystemオブジェクトは、org.apache.hadoop.fs.FileSystem.get(Configuration conf)
で取得されています。以下渡さHadoop FileSystem mkdirs()は、渡されたときに755パーミッションのディレクトリを作成します。777
FsPermissionオブジェクトは、ここで間違って何ができるか777
を通過した場合でも、作成された777
public int mkdirs(Path f, FsPermission permission) {
try {
return fileSystem.mkdirs(f, permission) ? 0 : 1;
} catch (IOException e) {
LOG.error("Failed to execute 'mkdirs': " + e.getMessage());
}
return 1;
}
しかし結果ディレクトリは755許可を持っているであるFsPermission.getDefault()
を介して取得されましたか?
小さな明確化:HDFSにファイルを書き込むとき、OS層のクライアントプロセスのumaskは要素ではありません。代わりに、設定プロパティ 'fs.permissions.umask-mode'がumaskを制御します。これは従来のPOSIXの 'umask'と同様に動作し、デフォルト値は' 022 'に設定されています。ありがとう! –