Я сталкиваюсь с проблемой, где exectutor создает задачи, которые никогда не заканчиваются, заставляя весь процесс зависнуть. Задачи обычно завершаются, ~4 секунды, но работали в течение полутора часов. Этого последовательно не происходит, я сказал бы вокруг 1/3 времени.
У меня есть 32 узла, которые имеют c3.8xlarge, таким образом, у них есть Ядра: 32 Памяти: устройство хранения данных на 60 гибибайт: 640 SSD ГБ
У меня есть RDDs из многих источников, которые обрабатываются и объединяются вместе. Задача, кажется, застревает как последовательная часть DAG, хотя я не проверил его местоположение достаточно, чтобы всегда быть уверенным его 100% то же место. В точке я наблюдал, все RDDs были объединены в один.
Некоторые нечетные признаки я заметил:
Это - только задачи на одном исполнителе, которые застревают. Существуют некоторые задачи от того исполнителя, который закончил, но это заканчивается с 32 застрявшими задачами.
Застрявшие задачи не имеют никакого времени запуска в UI. Задержка планировщика 0ms, время десериализации задачи на 0 мс, 0 мс переставляют время чтения. Существует только Исполнитель, Вычисляющий Время.
Дамп потока застрявшего исполнителя показывает, что задача Исполнителя запускает рабочего - (32-63) вместо нормального рабочего запуска задачи Исполнителя - (0-31). Они - все в состоянии потока “ОЖИДАНИЕ”. Этап в конечном счете перейдет к сути дела, где каждая задача за исключением 32 завершилась, поэтому в то время как они застревают, все другие задачи все еще создаются и заканчивающейся обычно.
Это начало происходить, когда я обновил из Spark 1.6.1 к 2.1.0. Был noproblem с Spark 1.6.1.