2014-01-28 3 views
0

Я знаю, что задача уменьшения должна выполняться независимо и изолированно. Но для Mapper, похоже, есть вероятность, что картографы будут общаться друг с другом? Если да, объясните.MapReduce Модель программирования - может Mapper взаимодействовать друг с другом во время процесса карты

ответ

1

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

Смотрите этот отрывок из YDN учебника для лучшего понимания:

Если Mappers и Переходники были отдельные личности и общались друг с другом или с внешним миром, а затем перезапустить задание будет требовать от других узлов в обмениваться данными с новыми экземплярами карты и сокращать задачи, а повторно выполненные задачи должны будут восстановить их промежуточное состояние. Этот процесс, как известно, сложный и подверженный ошибкам в общем случае. MapReduce упрощает эту проблему, устраняя идентификаторы задач или возможность для разделов задач для связи друг с другом. Отдельная задача видит только свои собственные прямые входы и знает только свои собственные выходы, , чтобы сделать этот процесс отказа и перезагрузки чистым и надежным.

P.S: Могу ли я спросить, что заставляет вас думать по-другому?

+0

Благодарим за подробное объяснение этого. Я смотрел на MultithreadedMapper, где я столкнулся с этой мыслью. – Clark