web-dev-qa-db-fra.com

Pourquoi "hadoop fs -mkdir" échoue-t-il avec l'autorisation refusée?

J'utilise Cloudera sur une machine VM avec laquelle je joue. Malheureusement, je ne parviens pas à copier les données sur le HDFS. Je reçois le message suivant:

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

Je ne suis pas trop préoccupé par la sécurité sur cette machine virtuelle. Y a-t-il un moyen de renforcer la sécurité sur HDFS?

12
AAA

L'utilisation de mkdir dans hadoop nécessite les "autorisations de fichier hadoop". Dans votre exemple, vous pouvez voir que hdfs est un utilisateur autorisé à créer des dossiers. Donc si vous courez:

Sudo -u hdfs hadoop fs -mkdir /import

alors le dossier import sera créé. Si vous voulez changer le propriétaire de ce dossier, lancez:

Sudo -u hdfs hadoop fs -chown new_user /import

Maintenant, new_user peut manipuler des fichiers dans le dossier import

15
xYan

Lorsque vous exécutez la commande ci-dessus, si le répertoire personnel hdfs (/ utilisateur/cloudera) n’est pas présent, ce répertoire sera créé en premier, puis l’entrée du répertoire sera créée sous/utilisateur/cloudera

Pour donner la permission à l'utilisateur cloudera de créer son propre répertoire, vous devez donner la permission. hdfs user est l'utilisateur admin dans hdfs, passez à hdfs puis exécutez la commande suivante 

[hdfs@localhost~]$ hadoop fs -mkdir /user/cloudera ; hadoop fs -chmod 777  /user/cloudera

Ou 

si vous n'êtes pas trop préoccupé par la sécurité hdfs, désactivez l'autorisation hdfs en définissant la propriété ci-dessous sur false dans hdfs-site.xml

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

après avoir défini cette propriété sur false, il est nécessaire de redémarrer hdfs.

9
SachinJ

Dans Cloudera Manager, vous pouvez modifier les paramètres: hdfs-> configuration-> afficher & modifier, décocher la case Vérifier les autorisations HDFS dfs.permissions et redémarrer le hdfs. 

5
shakir544

J'ai résolu le problème en créant un super-groupe dans /etc/group et en mettant à jour les connexions de l'utilisateur. Je veux dire que l'utilisateur devrait faire partie du super-groupe HDFS pour avoir accès à l'écriture sur HDFS.

$vi /etc/group

supergroup:x:30000:root

Plus tard, a été capable d'écrire sur HDFS. J'espère que ça aide

0
GURUVEER