distcp

Используется для копирования данных внутри и между кластерами. Команда использует MapReduce для распространения, обработки и восстановления ошибок, а также для создания отчетов. Передает список файлов и директорий в качестве входных данных для map-задач, каждая из которых копирует файлы, указанные в списке исходных данных. Дополнительную информацию можно найти на странице Hadoop DistCp Guide.

Использование показано ниже:

$ hadoop distcp [OPTIONS] <src> <dst>
Аргументы

-append

Использует существующие данные в конечных файлах и добавляет к содержимому новые данные, если это возможно

-async

Определяет, должно ли выполнение distcp быть блокирующим

-atomic

Выполняет все изменения атомарно

-bandwidth <arg>

Указывает пропускную способность для map-задачи в МБ, возможно указание дробного значения

-blocksperchunk <arg>

При указании положительного значения те файлы, которые занимают больше блоков, чем указано в значении, будут разделены на части (chunks) <blocksperchunk> и будут перемещены параллельно. При достижении конечной файловой системы, части файлов будут собраны воедино. По умолчанию <blocksperchunk> равен 0, а значит файлы передается цельно, без разделения на части. Это параметр работает, если исходная файловая система реализует метод getBlockLocations, а конечная файловая система реализует метод concat

-copybuffersize <arg>

Размер буфера копирования (в байтах). По умолчанию равен 8192

-delete

Удаляет файлы с конечной файловой системы, если этих файлов нет в source

-diff <arg>

Использует diff-отчет снепшотов для определения разницы между source и target

-f <arg>

Указывает список файлов для копирования

-filters <arg>

Путь к файлу, который содержит список путей, которые необходимо исключить из операции копирования

-i

Игнорирует ошибки при копировании

-log <arg>

Указывает DFS-директорию для сохранения логов distcp

-m <arg>

Максимальное количество параллельных map-задач для копирования

-numListstatusThreads <arg>

Количество потоков для построения листинга файлов (40 максимум)

-overwrite

Перезаписывает файлы в target-директории, даже если файлы уже существуют

-p <arg>

Сохраняет статус (rbugpcaxt)(репликация, размер блока, пользователь, группа, разрешения, тип контрольной суммы, списки управления доступом, XATTR, временные метки). Если -p задан без аргументов, сохраняет репликацию, размер блока, пользователя, группу, разрешения, тип контрольной суммы и отметки времени

-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
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней