Можно ли distcp файлы (разделенные запятыми), используя distcp между двумя каталогами Hdfs (отдельные кластеры)?

У меня есть необходимость только distcp x количество файлов.

Не могу найти способ сделать это.

  1. Одна идея состоит в том, чтобы скопировать его во временный каталог и затем разархивировать этот каталог. После завершения я могу удалить этот временный каталог.

  2. Отдельные команды distcp (для каждого файла). Это может быть больно.

Не уверен, что разделение запятыми разрешено.

Есть идеи?

Заранее спасибо.

1 ответ

Решение

Вы можете передать все файлы как источники DistCp команда

hadoop distcp hdfs://src_nn/var/log/spark/appHistory/<appId_1>/ \
              hdfs://src_nn/var/log/spark/appHistory/<appId_2>/ \
              ....
              hdfs://src_nn/var/log/spark/appHistory/<appId_n>/ \
              hdfs://dest_nn/target/

Или создайте файл, содержащий список источников, и передайте его команде как источник с -f вариант

hadoop distcp -f hdfs://src_nn/list_of_files hdfs://dest_nn/target/
Другие вопросы по тегам