2016-01-03 1 views
0

Я изучаю этот модуль hadoop на yahoo (https://developer.yahoo.com/hadoop/tutorial/module4.html), и я читаю часть спекулятивного исполнения. Мой вопрос заключается в следующем,
Где заброшенные задачи и выброшенные выходы переходят из-за спекулятивного исполнения, так как в соответствии с модулем
Спекулятивное выполнение Hadoop

Потому что в соответствии с Yahoo,
«Если другие копии были выполнение умозрительно, Hadoop рассказывает TaskTrackers отказаться от задач и отбросить их результаты »

ответ

1

Несмотря на то, что это не было явным, отбрасывание заброшенных задач подразумевает освобождение ресурсов (памяти и процессорных ядер) от убитых задач и освобождение дискового пространства (стирание вывода на диске). Если вы используете YARN, Node Manager выпустит контейнеры.

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

Что происходит, если вы убиваете обычный процесс Java? Ресурсы, используемые этим процессом, освобождаются. То же самое произойдет и в этом случае. Единственное отличие - задача убита изящно.

TaskAttemptKillEvent обеспечит более глубокое по этому topic

+0

выпустили? что означает потерю данных? –

+0

Данные уже доступны с успешной задачей. Неверные данные задачи будут отброшены. Данных из этих задач нет. –

+0

Итак, если данные будут отброшены, тогда имеющиеся данные будут неполными или другие задания поймают или произведут другие данные? –