Wenn Sie ausführen:
hdfs dfs -copyFromLocal foo.txt bar.txt
dann wird die lokale Datei foo.txt in Ihr eigenes hdfs-Verzeichnis /user/popeye/bar.txt
kopiert (wobei popeye
ist Ihr Benutzername.) Als Ergebnis wird Folgendes erreicht:
hdfs dfs -copyFromLocal foo.txt /user/popeye/bar.txt
Stellen Sie vor dem Kopieren einer Datei in hdfs sicher, dass Sie zuerst das übergeordnete Verzeichnis erstellen. Sie müssen keine Dateien in diesem "Home"-Verzeichnis ablegen, aber (1) sollten Sie "/" nicht mit allen möglichen Dateien überladen, und (2) das Befolgen dieser Konvention hilft, Konflikte mit anderen Benutzern zu vermeiden.
Ihr Ansatz ist falsch oder Ihr Verständnis ist falsch
dfs.datanode.data.dir
, ist der Ort, an dem Sie Ihre Datenblöcke speichern möchten
Wenn Sie hdfs dfs -ls /
eingeben Sie erhalten eine Liste der Verzeichnisse in hdfs. Dann können Sie mit -copyFromLocal
Dateien von lokal nach hdfs übertragen oder -put
in ein bestimmtes Verzeichnis oder mit -mkdir
Sie können ein neues Verzeichnis erstellen
Weitere Informationen finden Sie unter dem folgenden Link
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
Gemäß der ersten Antwort arbeite ich sie ausführlich für Hadoop 1.x
aus -
Angenommen, Sie führen dieses Skript auf einem Pseudoverteilungsmodell aus, Sie erhalten wahrscheinlich eine oder zwei Listen von Benutzern (NameNodes) illustriert -
Bei unserem vollständigen Verteilungsmodell haben Sie zunächst die Administratorrechte, um diese Dinge auszuführen, und es wird eine Anzahl von N-Listen von NameNodes (Benutzern) geben.
Jetzt kommen wir also zu unserem Punkt -
Greifen Sie zuerst auf Ihr Hadoop-Home-Verzeichnis zu und führen Sie von dort aus dieses Skript aus -
bin/hadoop fs -ls /
Das Ergebnis wird so aussehen -
drwxr-xr-x - xuiob78126arif supergroup 0 2017-11-30 11:20 /user
also hier xuiob78126arif
ist mein Name node(master/user) und das Verzeichnis NameNode(user) ist -
/user/xuiob78126arif/
Jetzt können Sie zu Ihrem Browser gehen und die Adresse -
suchenhttp://xuiob78126arif:50070
und von dort erhalten Sie den Cluster Summary, NameNode Storage
usw.
Hinweis:Das Skript liefert nur unter einer Bedingung Ergebnisse, wenn mindestens eine Datei oder ein Verzeichnis in DataNode existiert, andernfalls erhalten Sie -
ls: Cannot access .: No such file or directory.
In diesem Fall legen Sie also zuerst eine beliebige Datei mit bin/hadoop fs -put <source file full path>
ab
und danach den bin/hadoop fs -ls /
ausführen Skript.
und jetzt hoffe ich, dass du ein wenig zu deinem Thema gekommen bist, danke.