Ответы:
bin/hadoop fs -get /hdfs/source/path /localfs/destination/path
bin/hadoop fs -copyToLocal /hdfs/source/path /localfs/destination/path
namenode_machine:50070
), перейдите к файлу, который вы собираетесь скопировать, прокрутите страницу вниз и щелкните по загрузке файла .В Hadoop 2.0
hdfs dfs -copyToLocal <hdfs_input_file_path> <output_path>
где,
hdfs_input_file_path
может быть получен из http://<<name_node_ip>>:50070/explorer.html
output_path
это локальный путь к файлу, куда файл должен быть скопирован.
Вы также можете использовать get
вместо copyToLocal
.
Чтобы скопировать файлы из HDFS в локальную файловую систему, можно выполнить следующую команду:
hadoop dfs -copyToLocal <input> <output>
<input>
: путь к каталогу HDFS (например, / mydata), который вы хотите скопировать<output>
: путь к целевому каталогу (например, ~ / Documents)hadoop fs -ls
?
Вы можете достичь обоих этих способов.
1.hadoop fs -get <HDFS file path> <Local system directory path>
2.hadoop fs -copyToLocal <HDFS file path> <Local system directory path>
Пример:
Мои файлы находятся в /sourcedata/mydata.txt. Я хочу скопировать файл в локальную файловую систему по этому пути / user / ravi / mydata
hadoop fs -get /sourcedata/mydata.txt /user/ravi/mydata/
Если ваш исходный «файл» разделен между несколькими файлами (возможно, в результате map-reduce), которые находятся в одном дереве каталогов, вы можете скопировать его в локальный файл с помощью:
hadoop fs -getmerge /hdfs/source/dir_root/ local/destination
если вы используете докер, вам нужно сделать следующие шаги:
скопируйте файл из hdfs в namenode (hadoop fs -get output / part-r-00000 / out_text). "/ out_text" будет сохранен в namenode.
скопируйте файл из namenode на локальный диск с помощью (docker cp namenode: / out_text output.txt)
output.txt будет в вашем текущем рабочем каталоге
bin/hadoop fs -put /localfs/destination/path /hdfs/source/path