Permissão negada em hdfs

Sou novo no sistema de ficheiros distribuídos do hadoop, fiz a instalação completa do nó único do hadoop na minha máquina.mas depois disso, quando eu vou enviar dados para hdfs, ele dá uma mensagem de erro Permission Denied.

Mensagem do terminal com o comando:

hduser@ubuntu:/usr/local/hadoop$ hadoop fs -put /usr/local/input-data/ /input
put: /usr/local/input-data (Permission denied)

hduser@ubuntu:/usr/local/hadoop$ 

Depois de usar o sudo e adicionar o hduser ao sudouser:

hduser@ubuntu:/usr/local/hadoop$ sudo bin/hadoop fs -put /usr/local/input-data/ /inwe
put: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="":hduser:supergroup:rwxr-xr-x

hduser@ubuntu:/usr/local/hadoop$ 
Author: Roman Nikitchenko, 2012-07-21

5 answers

Resolvi este problema temporariamente, desactivando o dfs. permission.By adicionar abaixo o código da propriedade para conf / hdfs-site.xml
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>
 57
Author: Vignesh Prajapati, 2016-01-24 20:04:12
Tive uma situação semelhante e aqui está a minha abordagem, que é um pouco diferente.
 HADOOP_USER_NAME=hdfs hdfs dfs -put /root/MyHadoop/file1.txt /

O que realmente faz é ler o ficheiro local de acordo com as suas permissões locais, mas ao colocar o ficheiro em HDFS, é autenticado como o Utilizador hdfs. Você pode fazer isso com outro ID (cuidado com a configuração de esquemas auth reais, mas isso geralmente não é um caso).

Vantagens:

  1. As permissões são mantidas em HDFS.
  2. Não precisas. Não precisas de facto, o utilizador local apropriado "hdfs".
  3. Você não precisa copiar nada ou alterar as permissões por causa de pontos anteriores.
 47
Author: Roman Nikitchenko, 2014-08-28 15:15:29
Está a ter dois problemas distintos:
hduser@ubuntu:/usr/local/hadoop$ hadoop fs -put /usr/local/input-data/ /input put: /usr/local/input-data (Permission denied)

Aqui, o utilizador hduser não tem acesso à pasta local /usr/local/input-data. Ou seja, as suas permissões locais são demasiado restritivas. Devias mudá-lo.


hduser@ubuntu:/usr/local/hadoop$ sudo bin/hadoop fs -put /usr/local/input-data/ /inwe put: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="":hduser:supergroup:rwxr-xr-x

Aqui, o utilizador root (dado que está a usar o sudo) não tem acesso à pasta HDFS /input. Como você pode ver: hduser:supergroup:rwxr-xr-x diz apenas hduser tem acesso de escrita. Hadoop realmente não respeita root como um utilizador especial.


To corrija isto, sugiro que mude as permissões nos dados locais:

sudo chmod -R og+rx /usr/local/input-data/

Então, tente o comando put de novo como hduser .

 14
Author: Donald Miner, 2012-07-22 21:01:51

Iniciar uma linha de comandos como hduser (a partir do root) e executar o seu comando

sudo -u hduser bash
hadoop fs -put /usr/local/input-data/ /input

[actualização] Note também que o hdfs utilizador é o super-utilizador e tem todos os privilégios de r / W.

 5
Author: Martin Tapp, 2014-05-15 12:39:48

Resolvi este problema usando os seguintes passos

su hdfs
hadoop fs -put /usr/local/input-data/ /input
exit
 3
Author: java_dev, 2014-10-10 07:05:48