distcp
Используется для копирования данных внутри и между кластерами. Команда использует MapReduce для распространения, обработки и восстановления ошибок, а также для создания отчетов. Передает список файлов и директорий в качестве входных данных для map-задач, каждая из которых копирует файлы, указанные в списке исходных данных. Дополнительную информацию можно найти на странице Hadoop DistCp Guide.
Использование показано ниже:
$ hadoop distcp [OPTIONS] <src> <dst>
-append |
Использует существующие данные в конечных файлах и добавляет к содержимому новые данные, если это возможно |
-async |
Определяет, должно ли выполнение |
-atomic |
Выполняет все изменения атомарно |
-bandwidth <arg> |
Указывает пропускную способность для map-задачи в МБ, возможно указание дробного значения |
-blocksperchunk <arg> |
При указании положительного значения те файлы, которые занимают больше блоков, чем указано в значении, будут разделены на части (chunks) <blocksperchunk> и будут перемещены параллельно.
При достижении конечной файловой системы, части файлов будут собраны воедино.
По умолчанию <blocksperchunk> равен 0, а значит файлы передается цельно, без разделения на части.
Это параметр работает, если исходная файловая система реализует метод |
-copybuffersize <arg> |
Размер буфера копирования (в байтах). По умолчанию равен 8192 |
-delete |
Удаляет файлы с конечной файловой системы, если этих файлов нет в source |
-diff <arg> |
Использует diff-отчет снепшотов для определения разницы между source и target |
-f <arg> |
Указывает список файлов для копирования |
-filters <arg> |
Путь к файлу, который содержит список путей, которые необходимо исключить из операции копирования |
-i |
Игнорирует ошибки при копировании |
-log <arg> |
Указывает DFS-директорию для сохранения логов |
-m <arg> |
Максимальное количество параллельных map-задач для копирования |
-numListstatusThreads <arg> |
Количество потоков для построения листинга файлов (40 максимум) |
-overwrite |
Перезаписывает файлы в target-директории, даже если файлы уже существуют |
-p <arg> |
Сохраняет статус (rbugpcaxt)(репликация, размер блока, пользователь, группа, разрешения, тип контрольной суммы, списки управления доступом, XATTR, временные метки).
Если |
-rdiff <arg> |
Использует diff-отчет снепшотов для определения изменений на target-системе |
-skipcrccheck |
Определяет, пропускать ли CRC-проверки между source/target-путями |
-strategy <arg> |
Определяет стратегию копирования. По умолчанию используется подход с разделением работы на основе размера файлов |
-tmp <arg> |
Путь к временной директории, используемой для осуществления атомарных операций копирования |
-update |
Копирует в target недостающие файлы и переписывает существующие, если есть совпадения |
-v |
Сохраняет дополнительную информацию (путь, размер) в логи SKIP/COPY |
-xtrack <arg> |
Сохраняет информацию о недостающих source-файлах в указанную директорию |
Пример:
$ hadoop distcp hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo
$ hadoop distcp hdfs://nn1:8020/foo/a hdfs://nn1:8020/foo/b hdfs://nn2:8020/bar/foo