У меня есть попытка уменьшить задачу hadoop, которая никогда не завершится и не завершится, если я не завершу ее вручную.
Проблема возникает, когда узел отслеживания задач (из-за сетевых проблем, которые я все еще исследую) теряет связь с другими узлами отслеживания задач / данных, но не с устройством отслеживания заданий.
По сути, задача уменьшения не может получить необходимые данные из других узлов данных из-за проблем с тайм-аутом и помещает их в черный список. Пока все хорошо, черный список ожидается и необходим, проблема в том, что он будет повторять попытки одних и тех же хостов из черного списка в течение нескольких часов (соблюдая то, что кажется экспоненциальным алгоритмом отката), пока я не убью его вручную. Последняя длительная задача: повторная попытка> 9 часов.
Я вижу в журнале сотни таких сообщений:
2013-09-09 22:34:47,251 WARN org.apache.hadoop.mapred.ReduceTask (MapOutputCopier attempt_201309091958_0004_r_000044_0.1): attempt_201309091958_0004_r_000044_0 copy failed: attempt_201309091958_0004_m_001100_0 from X.X.X.X
2013-09-09 22:34:47,252 WARN org.apache.hadoop.mapred.ReduceTask (MapOutputCopier attempt_201309091958_0004_r_000044_0.1): java.net.SocketTimeoutException: connect timed out
Есть ли способ или параметр указать, что после n попыток или секунд задача должна завершиться сбоем и перезапуститься сама по себе на другом узле отслеживания задач?
Вот некоторые из релевантных параметров кластера Hadoop для уменьшения / тайм-аута, которые я установил в своем кластере:
<property><name>mapreduce.reduce.shuffle.connect.timeout</name><value>180000</value></property>
<property><name>mapreduce.reduce.shuffle.read.timeout</name><value>180000</value></property>
<property><name>mapreduce.reduce.shuffle.maxfetchfailures</name><value>10</value></property>
<property><name>mapred.task.timeout</name><value>600000</value></property>
<property><name>mapred.jobtracker.blacklist.fault-timeout-window</name><value>180</value></property>
<property><name>mapred.healthChecker.script.timeout</name><value>600000</value></property>
Кстати, это задание выполняется в кластере AWS EMR (версия Hadoop: 0.20.205).
Заранее спасибо.