Hadoop Distcp - проблема с небольшими файлами при копировании из одного места в другое - PullRequest
0 голосов
/ 24 октября 2019

Я попытался скопировать 400+ ГБ и еще одно задание distcp с размером данных 35,6 ГБ, но на завершение их работы ушло около 2-3 часов.

У нас достаточно ресурсовкластер.

Но когда я изучил журналы контейнеров, я обнаружил, что копирование небольших файлов занимает так много времени. Файл, о котором идет речь, является небольшим файлом.

2019-10-23 14: 49: 09 546 INFO [main] org.apache.hadoop.tools.mapred.CopyMapper: копирование hdfs: // service-namemode-prod-ab / abc / xyz / ava / abc / hello / GRP_part-00001-.snappy.parquet to s3a: // имя-корзины / Данные / abc / xyz / ava / abc / hello / GRP_part-00001-.snappy.parquet 2019-10-23 14: 49: 09,940 INFO [main] org.apache.hadoop.tools.mapred.RetriableFileCopyCommand: создание временного файла: s3a: //bucket-name/Data/.distcp.tmp.attempt_1571566366604_0000_0

Итак, что можно сделать, чтобы улучшить это с помощью distcp, чтобы ускорить копирование?

Примечание: одна и та же копия данных в том же кластере в ObjectХранение (внутреннее хранилище) не AWS S3, но аналогично S3 заняло 4 минуты для 98,6 ГБ.

Команда:

hadoop distcp -Dmapreduce.task. timeout = 0 -Dfs.s3a.fast.upload = true -Dfs.s3a.fast.buffer.size = 157286400 -Dfs.s3a.multipart.size = 314572800 -Dfs.s3a.multipart.threshold = 1073741824 -Dmapreduce.map. Memory.mb = 8192 -Dmapreduce.map.java.opts = -Xmx7290m -Dfs.s3a.max.total.tasks = 1 -Dfs.s3a.threads.max = 10 -пропускная способность 1024 / abc / xyz / ava / s3a:// bucket-name / Data /

Что можно оптимизировать с точки зрения стоимости здесь?

Мои спецификации кластера следующие,

Выделить память (накопительную) - 1.2T

Доступная память - 5.9T

Выделенные VCores (накопительные) - 119T

Доступные VCores - 521T

Сконфигурированная емкость- 997T

Используется HDFS - 813T

Используется без HDFS - 2.7T

Может кто-нибудь предложить решение для преодоления этой проблемы и предложить оптимальный distcp conf для передачи 800 ГБ - 1 ТБ *Обычно 1076 * файлов из HDFS в хранилище объектов.

...