У нас была похожая проблема - она называлась spark.stop () и System.exit () в конце кода, задание выполнено (просматривало его в терминале), веб-интерфейс был закрыт, токен _SUCCESS былнаписано, и все же приложение просто сидело там и было помечено как завершенное только в Hadoop Resource Manager через 10-40 минут.
В результате возникла проблема с сетью, которую я исправил, увеличив следующее:
--conf spark.rpc.message.maxSize=512 (default: 128)
--conf spark.network.timeout=600 (default: 120s)
--conf spark.executor.heartbeatInterval=30s (default: 10s)
Один быстрый способ проверить это - просмотреть журналы исполнителя - мы увидели кучу следующих предупреждений, которые предупредили меня
yarn logs -applicationId <app_id> | grep WARN
...
WARN Executor: Issue communicating with driver in heartbeater