Відповіді:
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>
: шлях до каталогу призначення (наприклад, ~ / Документи)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 Я хочу скопіювати файл у локальну файлову систему на цьому шляху / користувача / ravi / mydata
hadoop fs -get /sourcedata/mydata.txt /user/ravi/mydata/
Якщо ваш вихідний "файл" розділений на декілька файлів (можливо, в результаті зменшення карти), що живуть в одному дереві каталогів, ви можете скопіювати його в локальний файл за допомогою:
hadoop fs -getmerge /hdfs/source/dir_root/ local/destination
якщо ви використовуєте докер, ви повинні виконати наступні дії:
скопіюйте файл з hdfs в Namenode (hadoop fs -get output / part-r-00000 / out_text). "/ out_text" буде збережено у наментоді.
скопіюйте файл з namenode на локальний диск (docker cp namenode: / out_text output.txt)
output.txt буде там у вашому поточному робочому каталозі
bin/hadoop fs -put /localfs/destination/path /hdfs/source/path