Odpowiedzi:
bin/hadoop fs -get /hdfs/source/path /localfs/destination/path
bin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/path
namenode_machine:50070
), przejdź do pliku, który chcesz skopiować, przewiń stronę w dół i kliknij pobierz plik .W Hadoop 2.0,
hdfs dfs -copyToLocal <hdfs_input_file_path> <output_path>
gdzie,
hdfs_input_file_path
można uzyskać z http://<<name_node_ip>>:50070/explorer.html
output_path
jest lokalną ścieżką do pliku, do którego plik ma zostać skopiowany.
możesz również użyć get
zamiast copyToLocal
.
Aby skopiować pliki z HDFS do lokalnego systemu plików, można uruchomić następujące polecenie:
hadoop dfs -copyToLocal <input> <output>
<input>
: ścieżka do katalogu HDFS (np. / moje dane), który chcesz skopiować<output>
: ścieżka do katalogu docelowego (np. ~ / Documents)hadoop fs -ls
?
możesz osiągnąć na oba te sposoby.
1.hadoop fs -get <HDFS file path> <Local system directory path>
2.hadoop fs -copyToLocal <HDFS file path> <Local system directory path>
Dawny:
Moje pliki znajdują się w /sourcedata/mydata.txt Chcę skopiować plik do lokalnego systemu plików w tej ścieżce / user / ravi / mydata
hadoop fs -get /sourcedata/mydata.txt /user/ravi/mydata/
Jeśli twój "plik" źródłowy jest podzielony na wiele plików (być może w wyniku mapowania), które znajdują się w tym samym drzewie katalogów, możesz skopiować go do pliku lokalnego za pomocą:
hadoop fs -getmerge /hdfs/source/dir_root/ local/destination
jeśli używasz dockera, musisz wykonać następujące czynności:
skopiuj plik z hdfs do namenode (hadoop fs -get output / part-r-00000 / out_text). „/ out_text” zostanie zapisany w namenode.
skopiuj plik z namenode na dysk lokalny przez (docker cp namenode: / out_text output.txt)
output.txt będzie tam w twoim bieżącym katalogu roboczym
bin/hadoop fs -put /localfs/destination/path /hdfs/source/path