Сетка аварийного переключения главного (отправителя) узла - PullRequest
1 голос
/ 10 марта 2011

Я работаю над проблемой пакетной обработки. Решение должно работать с неисправным оборудованием.

Существует главный узел (который инициирует выполнение задач) и рабочие узлы, которые выполняют задания. Я знаю, как работает восстановление после отказа рабочих узлов, но я не смог найти никакой информации о восстановлении после отказа основных узлов. Всякий раз, когда мастер-узел, запустивший задачу, выходит из строя, вся задача отменяется.

Есть ли способ завершить обработку задачи?

Не могли бы вы предложить лучший способ реализации отработки отказа главного узла?

С уважением, Kuba

1 Ответ

2 голосов
/ 14 марта 2011

Всякий раз, когда ваш главный узел умирает, практически никто не может выполнить шаг «уменьшить» вашей задачи MapReduce.

Существует несколько способов решения этой проблемы:

  1. Сохранение промежуточных контрольных точек с использованием GridCheckpointSpi (GridTaskSession.saveCheckpoint (..) API) и затем, когда ваша задача перезапускаетсяпосле сбоя узла вы можете проверить, сохранена ли контрольная точка, и начать с нее.

  2. Сделайте то же, что в (1), но вместо этого используйте сетку данных (GridCache API).

  3. Если вас не волнует «уменьшить», пусть ваши задания игнорируют вызов «отмена» и просто сохраняют результаты в сетке данных после завершения.

- Лучший

...