下面的代码段中使用的fileSystem对象已通过org.apache.hadoop.fs.FileSystem.get(Configuration conf)获得。

下面传递的FsPermission对象是通过777的FsPermission.getDefault()获得的。

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;
}

但是,即使通过777,创建的结果目录也具有755权限。

这里有什么不对劲?

最佳答案

process umask 几乎可以肯定设置为022并屏蔽这些位。

Per the Wikipedia entry on umask :



umask设置为022(八进制)后,创建具有0777请求的权限的内容将产生0755的最终权限。

关于hadoop - 传递777时,Hadoop FileSystem mkdirs()创建具有755权限的目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42000592/

10-12 23:02