Я знаю, что задача уменьшения должна выполняться независимо и изолированно. Но для Mapper, похоже, есть вероятность, что картографы будут общаться друг с другом? Если да, объясните.MapReduce Модель программирования - может Mapper взаимодействовать друг с другом во время процесса карты
ответ
Mappers не общаются друг с другом. Это было сделано намеренно, чтобы убедиться, что надежность каждой задачи карты определяется исключительно надежностью машины, на которой выполняется эта задача карты.
Смотрите этот отрывок из YDN учебника для лучшего понимания:
Если Mappers и Переходники были отдельные личности и общались друг с другом или с внешним миром, а затем перезапустить задание будет требовать от других узлов в обмениваться данными с новыми экземплярами карты и сокращать задачи, а повторно выполненные задачи должны будут восстановить их промежуточное состояние. Этот процесс, как известно, сложный и подверженный ошибкам в общем случае. MapReduce упрощает эту проблему, устраняя идентификаторы задач или возможность для разделов задач для связи друг с другом. Отдельная задача видит только свои собственные прямые входы и знает только свои собственные выходы, , чтобы сделать этот процесс отказа и перезагрузки чистым и надежным.
P.S: Могу ли я спросить, что заставляет вас думать по-другому?
Благодарим за подробное объяснение этого. Я смотрел на MultithreadedMapper, где я столкнулся с этой мыслью. – Clark