2016-05-17 11 views
1

Ich muss ein Konto für eine Anwendung erstellen, die Daten in HDFS speichern muss. verstand ich, dass ein Benutzer auf HDFS für die Erstellung von (ich verwende HDP 2.3), ich habe diese Befehle auszuführen:Wo muss ich HDFS-Benutzer erstellen?

useradd -G *groupname* *username* 
hdfs dfs -mkdir /user/*username* 
hdfs dfs -chown *username*:*groupname* /user/*username* 

Meine Frage ist: ich verstanden, dass, wenn ich einen Ordner auf HDFS erstellen dies nicht auf dem gesamten Cluster repliziert, nur die Daten sind auf allen Datenknoten verteilt. Muss ich diese Befehle auf jedem Knoten (namenode + datanode + edgenode) des Clusters ausführen oder nur auf dem Knoten, der von der Anwendung für den Zugriff auf HDFS verwendet wird (in meinem Fall der Randknoten)?

Danke.

Antwort

2

Wie Sie vielleicht wissen, werden nur Metadaten auf dem Knoten Name gespeichert und Daten werden auf dem Knoten Daten gespeichert.

Die obigen Befehle sind Teil der Metadaten, daher werden diese Informationen im Knoten Name gespeichert. Sie müssen also den obigen Befehl auf dem Randknoten Ihres Clusters ausführen, und die Metadaten, die aus dem obigen Befehl generiert wurden, werden auf dem Knoten Name gespeichert.

Nur wenn Daten gespeichert werden, kommt der Datenknoten ins Bild.

Fazit: Führen Sie Ihren obigen Befehl nur auf dem edge node des Clusters.

+0

Vielen Dank! Sehr deutlich! –

1

Wenn ein Client die auf HDFS gespeicherten Daten speichern oder verarbeiten möchte, prüft NN zunächst, ob er Zugriff darauf hat. Basierend auf der Zugriffsebene werden die Daten vom Benutzer abgerufen.

Sie müssen nicht die oben genannten Befehle auf jedem DN ausführen. Der Zugriff wird an der NN selbst überprüft und basierend auf der Art des Benutzers werden Daten zugänglich sein. Sie können die Befehle nur auf NN ausführen und NN wird danach vorsichtig sein.

Verwandte Themen