Как обращаться с датодой, которая умирает во время карты / уменьшения - PullRequest
2 голосов
/ 27 января 2011

Что происходит, когда датодан, который использует карта / уменьшение, выходит из строя?Разве работа не должна быть перенаправлена ​​на другую датододу?Как мой код должен обрабатывать это исключительное условие?

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

Если datanode выйдет из строя, задачи, выполняющиеся на этом узле (при условии, что вы используете его также как средство отслеживания задач), завершатся сбоем, и эти сбойные задачи будут назначены другим отслеживателям задач для повторного выполнения.Блоки данных, которые потеряны в мертвом датоде, будут доступны в других датододах, так как будет происходить репликация данных по всему кластеру.Таким образом, даже если датодан выйдет из строя, не будет никаких потерь, за исключением очень короткой задержки повторного выполнения невыполненных задач.Все это будет обрабатываться фреймворком.Ваш код не должен беспокоиться об этом.

1 голос
/ 27 января 2011

Это зависит главным образом от вашей репликации HDFS. Если оно больше 1, задание будет запрашивать блок, которого нет на «сбитом» сервере. Если существует допустимая репликация, она будет передана в задание, и задание может быть запущено снова с новым блоком.

Как мой код должен обрабатывать это исключительное условие?

Вы не столкнетесь ни с каким исключением, просто если вся работа потерпит неудачу. В этом случае вы можете перенести свою работу и надеяться, что датодан вернется.

...