Antworten:
bin/hadoop fs -get /hdfs/source/path /localfs/destination/pathbin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/pathnamenode_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 getanstelle 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