Wordcount: более 1 задачи карты на блок, с отключенным спекулятивным выполнением

В Wordcount кажется, что вы можете получить более 1 задачи карты на блок, с отключенным спекулятивным выполнением.

Делает ли Jobtracker какую-то магию под капотом, чтобы распределить задачи больше, чем предусмотрено InputSplits?

2 ответа

Блоки и сплиты - это две разные вещи. Вы можете получить более одного сопоставителя для одного блока, если в этом блоке более одного разделения.

Ответ заключается в том, как работают форматы ввода Hadoop:

В HDFS:

Давайте рассмотрим пример, когда блоки имеют размер 1 МБ, входной файл для HDFS имеет размер 10 МБ, а минимальный размер разделения составляет> 1 МБ.

1) Сначала файл добавляется в HDFS.

2) Файл разбит на 10 блоков, каждый размером 1 МБ.

3) Затем каждый блок размером 1 МБ считывается входным разделителем.

4) Поскольку блок размером 1 МБ меньше, чем MIN_SPLIT_SIZE, HDFS обрабатывает 1 МБ за раз без дополнительного разделения.

Мораль этой истории: FileInputFormat на самом деле сделает дополнительное разделение для вас, если ваши разделения меньше минимального размера разделения.

Я думаю, что я полностью забыл об этом, но, оглядываясь назад, это была особенность Hadoop с самого начала. Способность входного формата произвольно разделять блоки во время выполнения используется многими экосистемными инструментами для распределения нагрузок в зависимости от конкретного приложения.

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

Другие вопросы по тегам