Разделение файлов Hadoop: CompositeInputFormat: Внутреннее объединение - PullRequest
3 голосов
/ 28 декабря 2011

Я использую CompositeInputFormat для предоставления ввода в задание hadoop.

Количество сгенерированных разбиений - это общее количество файлов, переданных в качестве ввода в CompositeInputFormat (для объединения).

Заданиеполностью игнорирует размер блока и максимальный размер разделения (принимая данные из CompositeInputFormat).Это приводит к длительному выполнению задач карты и замедляет работу системы, поскольку входные файлы превышают размер блока.

Кто-нибудь знает, каким образом можно управлять количеством разбиений для CompositeInputFormat?

1 Ответ

6 голосов
/ 28 декабря 2011

К сожалению, CompositeInputFormat должен игнорировать размер блока / разбиения.В CompositeInputFormat входные файлы должны быть отсортированы и разделены одинаково ... поэтому Hadoop не может определить, где разделить файл, чтобы сохранить это свойство.У него нет возможности определить, где разбить файл, чтобы сохранить организованные файлы.

Единственный способ обойти это - разделить и разбить файлы вручную на более мелкие разбиения.Вы можете сделать это, передавая данные через задание mapreduce (возможно, только для отображения и преобразования идентификаторов) с большим количеством редукторов.Обязательно пропустите оба ваших набора данных с одинаковым количеством редукторов.

...