Почему "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
Но это не рекомендуется, потому что это ставит под угрозу безопасность.