Обработка больших данных - стр. 33
Задача, которая была прервана из-за сбоя, перезапускается на другом узле, который может взять на себя ее выполнение. Для задач Map это означает повторное чтение соответствующего сплита данных и выполнение функции Map заново. Для задач Reduce повторный запуск означает пересчет агрегированных данных на новом узле. Благодаря этому подходу, система может завершить обработку данных даже при наличии сбоев, а конечный результат остается корректным и полным.
Еще одним важным аспектом отказоустойчивости в MapReduce является тесная интеграция с HDFS, который сам по себе обеспечивает отказоустойчивость через репликацию данных. HDFS хранит копии каждого блока данных на нескольких узлах кластера. Это означает, что даже если узел, содержащий данные, выходит из строя, другие копии этих данных остаются доступными на других узлах. Когда перезапускается задача Map, она может легко получить доступ к реплицированным данным и продолжить выполнение.
Эта репликация не только обеспечивает доступность данных, но и минимизирует время простоя. При возникновении сбоя задача может быть перезапущена на узле, расположенном рядом с узлом, на котором хранится одна из реплик данных, что снижает время доступа к данным и ускоряет выполнение задачи.
В больших кластерах не только отдельные узлы, но и целые подсети могут выходить из строя. MapReduce учитывает такие сценарии, предоставляя механизмы для обработки более сложных отказов. Например, система может обнаружить, что группа узлов, связанная с определенной сетью, стала недоступной, и она перенаправляет задачи на узлы в других сетях или подсетях.
В процессе выполнения задач MapReduce постоянно мониторит состояние выполнения, что позволяет оперативно реагировать на сбои. Веб-интерфейс и лог-файлы системы дают администраторам кластера возможность видеть статус каждой задачи, включая информацию о том, сколько задач были перезапущены из-за сбоев и на каких узлах они были выполнены успешно. Это не только помогает в управлении текущими задачами, но и предоставляет важные данные для анализа производительности и надежности кластера.
Благодаря этим встроенным механизмам отказоустойчивости, MapReduce гарантирует завершение обработки данных, даже если отдельные узлы кластера выходят из строя. Автоматическое обнаружение сбоев, перезапуск задач на других узлах, репликация данных и мониторинг выполнения задач создают высоконадежную и устойчивую к сбоям систему. Эти особенности делают MapReduce идеальным инструментом для работы с большими данными в распределенной среде, где отказоустойчивость является ключевым требованием.
5. Архитектура «мастер-слейв»:
MapReduce, как и многие распределенные системы, использует архитектуру "мастер-слейв" для управления распределением и выполнением задач в кластере. Эта архитектура включает в себя центральный управляющий узел, называемый JobTracker (в ранних версиях Hadoop), и множество подчиненных узлов, называемых TaskTracker. В современной реализации Hadoop JobTracker заменен на ResourceManager и ApplicationMaster в рамках системы управления ресурсами YARN (Yet Another Resource Negotiator), но концепция остается аналогичной.
JobTracker является центральным элементом в архитектуре MapReduce. Он выполняет несколько ключевых функций: