webentwicklung-frage-antwort-db.com.de

Warum schlägt "hadoop fs -mkdir" mit Permission Denied fehl?

Ich verwende Cloudera auf einem VM - Computer, mit dem ich herumspiele. Leider habe ich Probleme beim Kopieren von Daten auf das HDFS. Ich erhalte Folgendes:

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

Ich mache mir keine Sorgen um die Sicherheit auf dieser VM. Gibt es überhaupt Möglichkeiten, mehr Sicherheit für HDFS zu schaffen?

12
AAA

Die Verwendung von mkdir in hadoop erfordert die Berechtigung "hadoop-Datei". In Ihrem Beispiel können Sie sehen, dass hdfs ein Benutzer ist, der über Berechtigungen zum Erstellen von Ordnern verfügt. Also wenn du rennst:

Sudo -u hdfs hadoop fs -mkdir /import

dann wird der Ordner import erstellt. Wenn Sie den Besitzer dieses Ordners ändern möchten, führen Sie Folgendes aus:

Sudo -u hdfs hadoop fs -chown new_user /import

Jetzt kann der neue_Benutzer Dateien innerhalb des import-Ordners bearbeiten

15
xYan

Wenn Sie den obigen Befehl ausführen und das hdfs-Home-Verzeichnis (/ user/cloudera) nicht vorhanden ist, wird dieses Verzeichnis zuerst erstellt. Dann wird die Verzeichnis-Eingabe unter/user/cloudera erstellt

Um dem Cloudera-Benutzer die Berechtigung zu geben, ein eigenes Verzeichnis zu erstellen, müssen Sie die Berechtigung erteilen. HDFS-Benutzer ist der Administratorbenutzer in HDFS, wechseln Sie zu HDFS und führen Sie dann den folgenden Befehl aus 

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

Oder 

wenn Sie nicht allzu besorgt über die HDFS-Sicherheit sind, deaktivieren Sie die HDFS-Berechtigung, indem Sie die folgende Eigenschaft in hdfs-site.xml auf false setzen

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

nach dem Festlegen dieser Eigenschaft auf false müssen HDFS neu gestartet werden.

9
SachinJ

Im Cloudera Manager können Sie die Einstellungen ändern: hdfs-> Konfiguration-> Anzeigen und Bearbeiten, deaktivieren Sie die Option HDFS-Berechtigungen prüfen dfs.permissions und hdfs neu starten. 

5
shakir544

Dies liegt daran, dass Sie nicht über die erforderlichen Berechtigungen verfügen, um ein Verzeichnis in hdfs zu erstellen. Versuchen Sie dies als Sudo auszuführen:

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

Dies wird jedoch nicht empfohlen, da hierdurch die Sicherheit beeinträchtigt wird.

0
Amit Kumar

Ich habe das Problem durch Erstellen einer Supergruppe in /etc/group behoben und die Benutzeranmeldungen darin aktualisiert. Ich meine, der Benutzer sollte Teil der HDFS-Supergruppe sein, um auf HDFS schreiben zu können.

$vi /etc/group

supergroup:x:30000:root

Später konnte auf HDFS schreiben. Ich hoffe es hilft

0
GURUVEER