Почему "hadoop fs -mkdir" терпит неудачу с разрешением "Отказано"?

Я использую Cloudera на машине VM, с которой я играю. К сожалению, у меня возникают проблемы с копированием данных в HDFS, я получаю следующее:

[[email protected] ~]$ hadoop fs -mkdir input
mkdir: Permission denied: user=cloudera, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

Я не слишком беспокоюсь о безопасности на этой виртуальной машине, так или иначе, я могу открыть дополнительную безопасность для HDFS?

Ответ 1

Использование mkdir в hadoop требует "прав доступа к файлу". Из вашего примера видно, что hdfs - это пользователь, имеющий разрешения на создание папок. Поэтому, если вы запустите:

sudo -u hdfs hadoop fs -mkdir /import

тогда будет создана папка import. Если вы хотите изменить владельца этой папки, выполните следующие действия:

sudo -u hdfs hadoop fs -chown new_user /import

Теперь new_user может управлять файлами внутри папки import

Ответ 2

Когда вы выполняете приведенную выше команду, если hdfs home directory (/user/cloudera) не существует, тогда этот каталог будет создан первым, тогда вход каталога будет создан в /user/cloudera

Для предоставления пользователю cloudera разрешения на создание его собственного каталога, вы должны дать разрешение. Пользователь hdfs является пользователем admin в hdfs переключиться на hdfs, а затем выполнить следующую команду

[[email protected]~]$ hadoop fs -mkdir /user/cloudera ; hadoop fs -chmod 777  /user/cloudera

Или

Если вы не слишком обеспокоены безопасностью hdfs, вы отключите разрешение hdfs, установив для свойства ниже значение false в hdfs-site.xml

<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

после установки этого свойства в false hdfs необходимо перезапустить.

Ответ 3

В диспетчере cloudera вы можете изменить настройки: hdfs- > configuration- > view & edit, снимите флажок Проверять разрешения HDFS dfs.permissions и перезапустить hdf.

Ответ 4

Я решил проблему, создав супергруппу в /etc/group и обновил логины пользователя на ней. Я имею в виду, что пользователь должен быть частью супергруппы HDFS, чтобы иметь доступ к записи на HDFS.

$vi /etc/group

supergroup:x:30000:root

Позднее появилась возможность писать на HDFS. Надеюсь, что это поможет.

Ответ 5

Это потому, что у вас недостаточно прав для создания каталога в формате hdf. Попробуйте запустить это как sudo:

sudo -u hdfs hadoop fs -mkdir -p /user/samplefolder

Но это не рекомендуется, потому что это ставит под угрозу безопасность.