Да, hadoop fs - put
работает последовательно. Используйте команду distcp
(распределенная копия).
hadoop distcp file:///home/user/path /user/path
distcp
реализован как задание MapReduce, где копирование выполняется картами, которые работают параллельно в кластере. Там нет редукторов. Каждый файл копируется одной картой, и distcp
пытается дать каждой карте примерно одинаковый объем данных, объединяя файлы в примерно равные распределения. По умолчанию используется до 20 карт, но это можно изменить, указав аргумент -m
в distcp
.
См. Руководство здесь .
Также смотрите это сообщение в блоге .
Также вы можете запускать команды оболочки параллельно, используя амперсанд ('&'
) в конце:
hadoop fs - put src_file tgt_file &
hadoop fs - put src_file2 tgt_file2 &