Повторно запустите задание Hadoop, будет ли разделенный вывод mapout по-прежнему идти в те же редукторы? - PullRequest
1 голос
/ 16 ноября 2011

В hadoop предположим, что число узлов фиксировано (без сбоя сервера во время выполнения), если я использую один и тот же разделитель (например, разбиение хэша на ключе вывода карты) для разделения вывода mapper, и я выполняюзадание прочитать один и тот же набор данных дважды.Уверен ли, что данные с одним и тем же ключом попадут в один и тот же редуктор?спасибо

Например, мой mapoutput состоит из двух строк: Key |значение

A |что-нибудь

B |что угодно

Предположим, у меня есть два редуктора 1 и 2. При первом запуске строка «A | что угодно» идет к редуктору 1, а «B | что угодно» идет к редуктору2.Если я запускаю снова, возможно ли, что «A | что-нибудь» идет в редуктор 2, а «B | что-нибудь» идет в редуктор1?

Спасибо!

1 Ответ

2 голосов
/ 17 ноября 2011

Нет никакого сходства между картой / сокращением задач и узлами.Когда должна быть выполнена задача «карта / уменьшение», планировщик выбирает свободную ячейку карты / уменьшения, которая когда-либо будет доступна (это может быть / может не быть той же машиной из предыдущего запуска), чтобы выполнить задачу.Таким образом, при повторном запуске задания один и тот же ключ может быть обработан другим редуктором.Вот что делает Hadoop отказоустойчивой платформой.

...