So kopieren Sie Dateien von HDFS in das lokale Dateisystem. Es gibt keinen physischen Speicherort einer Datei unter der Datei, nicht einmal ein Verzeichnis. Wie kann ich sie für weitere Validierungen zu meinem lokalen verschieben? Ich werde durch Winscp versucht.
135
In Hadoop 2.0
wo,
hdfs_input_file_path
vielleicht erhalten vonhttp://<<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 verwendencopyToLocal
.quelle
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)quelle
hadoop fs -ls
?Sie können auf beide Arten erreichen.
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
quelle
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:
quelle
Dies funktionierte für mich auf meiner VM-Instanz von Ubuntu.
hdfs dfs -copyToLocal [Hadoop-Verzeichnis] [lokales Verzeichnis]
quelle
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
quelle
quelle