Можно ли distcp файлы (разделенные запятыми), используя distcp между двумя каталогами Hdfs (отдельные кластеры)?
У меня есть необходимость только distcp x количество файлов.
Не могу найти способ сделать это.
Одна идея состоит в том, чтобы скопировать его во временный каталог и затем разархивировать этот каталог. После завершения я могу удалить этот временный каталог.
Отдельные команды 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/