2016-05-30 5 views
1

Ich verstehe, dass CopyFromLocal oder Put-Befehl verwendet wird, um lokale Dateien in HDFS zu kopieren. Meine Frage ist, wenn man im Cluster sein muss, wenn wir den Befehl ausführen wollen, um Dateien nach HDFS zu kopieren? Angenommen, ich habe 3-Knoten-Cluster als a1, a2 und a3, wobei a1 der Hauptknoten und a2 und a3 die Datenknoten sind. 1. Um irgendwelche Dateien auf Datenknoten zu kopieren, muss ich mich an einen der Knoten (a1, a2 oder a3) anmelden. 2. Um irgendwelche Dateien auf Datenknoten von irgendeinem anderen Ort außerhalb des Clusters, sagen wir Maschine x1, zu kopieren, wie kann ich Kopiere die Dateien von x1 nach Cluster?Kopieren lokaler Datei in hdfs erfordert auf hdfs-Cluster zu sein?

dank -Brijesh

+0

BTW, es ist höflich, Antworten zu akzeptieren, die andere Leute Ihnen geben (oder kommentieren, warum es Ihr Problem nicht gelöst hat). Ich habe bemerkt, dass du eine Antwort auf eine vorherige Frage nicht akzeptiert hast. Wenn Stackoverflow-Benutzer dieses Verhalten bemerken, sind sie zurückhaltend, um Ihre Fragen zu beantworten. – cabad

Antwort

0

Sie können Ihre Dateien mit ssh hochladen:

cat your_local_file_to_upload | ssh [email protected]_HADOOP_GATEWAY "hadoop dfs -put - hadoopFolderName/file_name_in_hdfs"

Hier YOUR_HADOOP_GATEWAY ist die IP von einem der Knoten oder eine Maschine, die als zu handeln, so konfiguriert ist, ein Gateway zu Ihrem Hadoop-Cluster

Es funktioniert auch für Binärdateien.

Wenn Sie Dateien herunterladen möchten, können Sie in ähnlicher Weise wie folgt vor:

ssh [email protected]_HADOOP_GATEWAY "hdfs dfs -cat src_path_in_HDFS " > local_dst_path

0

Auch einen Blick auf WebHDFS nehmen, die mit dem Cluster eine REST-API ist für die Interaktion und läuft in der Regel auf dem gleichen Host als Name Knoten.

Verwandte Themen