Jak skopiować plik z HDFS do lokalnego systemu plików. W pliku nie ma fizycznej lokalizacji pliku, nawet katalogu. jak mogę przenieść je do mojego lokalnego w celu dalszych walidacji. jestem wypróbowany przez winscp.
135
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,
gdzie,
hdfs_input_file_path
można uzyskać zhttp://<<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
zamiastcopyToLocal
.źródło
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)źródło
hadoop fs -ls
?możesz osiągnąć na oba te sposoby.
Dawny:
Moje pliki znajdują się w /sourcedata/mydata.txt Chcę skopiować plik do lokalnego systemu plików w tej ścieżce / user / ravi / mydata
źródło
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ą:
źródło
To zadziałało dla mnie na mojej maszynie wirtualnej Ubuntu.
hdfs dfs -copyToLocal [katalog hadoop] [katalog lokalny]
źródło
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
źródło
źródło