Antworten:
bin/hadoop fs -get /hdfs/source/path /localfs/destination/path
bin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/path
namenode_machine:50070
), navigieren Sie zu der Datei, die Sie kopieren möchten , scrollen Sie auf der Seite nach unten und klicken Sie auf Datei herunterladen .In Hadoop 2.0
hdfs dfs -copyToLocal <hdfs_input_file_path> <output_path>
wo,
hdfs_input_file_path
vielleicht erhalten von http://<<name_node_ip>>:50070/explorer.html
output_path
ist der lokale Pfad der Datei, in den die Datei kopiert werden soll.
Sie können auch get
anstelle von verwenden copyToLocal
.
Um Dateien von HDFS in das lokale Dateisystem zu kopieren, kann der folgende Befehl ausgeführt werden:
hadoop dfs -copyToLocal <input> <output>
<input>
: Der HDFS-Verzeichnispfad (z. B. / mydata), den Sie kopieren möchten<output>
: der Zielverzeichnispfad (zB ~ / Dokumente)hadoop fs -ls
?
Sie können auf beide Arten erreichen.
1.hadoop fs -get <HDFS file path> <Local system directory path>
2.hadoop fs -copyToLocal <HDFS file path> <Local system directory path>
Ex:
Meine Dateien befinden sich in /sourcedata/mydata.txt. Ich möchte die Datei in das lokale Dateisystem unter diesem Pfad / user / ravi / mydata kopieren
hadoop fs -get /sourcedata/mydata.txt /user/ravi/mydata/
Wenn Ihre Quelldatei auf mehrere Dateien aufgeteilt ist (möglicherweise aufgrund von Kartenreduzierung), die sich im selben Verzeichnisbaum befinden, können Sie diese in eine lokale Datei kopieren mit:
hadoop fs -getmerge /hdfs/source/dir_root/ local/destination
Wenn Sie Docker verwenden, müssen Sie die folgenden Schritte ausführen:
Kopieren Sie die Datei von hdfs nach namenode (hadoop fs -get output / part-r-00000 / out_text). "/ out_text" wird auf dem Namensknoten gespeichert.
Kopieren Sie die Datei von namenode auf die lokale Festplatte mit (docker cp namenode: / out_text output.txt)
output.txt befindet sich in Ihrem aktuellen Arbeitsverzeichnis
bin/hadoop fs -put /localfs/destination/path /hdfs/source/path