Объект fileSystem, используемый в нижеприведенном фрагменте, получен через org.apache.hadoop.fs.FileSystem.get(Configuration conf)
.Hadoop FileSystem mkdirs() создает каталог с разрешением 755 при передаче 777
FsPermission объект прошел ниже, был получен с помощью FsPermission.getDefault()
который 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 разрешения, даже если прошло 777.
Что может быть неправильно здесь?
Небольшое пояснение: при записи файла в HDFS клиентский процесс umask на уровне ОС не является фактором. Вместо этого свойство конфигурации 'fs.permissions.umask-mode' управляет umask. Он ведет себя аналогично традиционному POSIX 'umask', а его значение по умолчанию установлено на' 022', поэтому этот ответ в остальном правильный. Благодаря! –