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?
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
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.
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.
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.
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