#apache-spark #kubernetes
#apache-spark #kubernetes
Вопрос:
У меня есть приложение spark, работающее с драйвером и двумя исполнителями. Эти исполнители терпят неудачу, и новые создаются бесконечно. Я ищу способ сообщить оператору spark (может быть, через свойство spark?) Прекратить попытки и навсегда завершить работу приложения spark после потери нескольких исполнителей.
Сначала я подумал "spark.task.maxFailures": "2"
, что это поможет мне, но на самом деле это не приводит к сбою приложения.
Сначала мы использовали версию Spark 2.4.4
, и приложение spark не использовалось для продолжения попыток бесконечно создавать новых исполнителей, подобных этому. Мы обновили Spark до версии 3.0.1
и только теперь видим это поведение.
Обновление — добавление журналов сбоев и воссоздания модулей. kubectl получает журналы
NAME READY STATUS RESTARTS AGE
bats-4ec00395a68a46939381e78e5545198b-driver 0/1 Completed 0 7h51m
bats-4ec00395a68a46939381e78e5545198b-driver 0/1 Terminating 0 8h
bats-4ec00395a68a46939381e78e5545198b-driver 0/1 Terminating 0 8h
bats-4ec00395a68a46939381e78e5545198b-driver 0/1 Pending 0 0s
bats-4ec00395a68a46939381e78e5545198b-driver 0/1 Pending 0 0s
bats-4ec00395a68a46939381e78e5545198b-driver 0/1 ContainerCreating 0 0s
bats-4ec00395a68a46939381e78e5545198b-driver 1/1 Running 0 4s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-1 0/1 Pending 0 1s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-1 0/1 Pending 0 1s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-2 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-2 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-1 0/1 ContainerCreating 0 1s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-2 0/1 ContainerCreating 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-2 1/1 Running 0 3s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-1 1/1 Running 0 5s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-2 0/1 OOMKilled 0 5m
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-2 0/1 Terminating 0 5m30s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-2 0/1 Terminating 0 5m30s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-3 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-3 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-3 0/1 ContainerCreating 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-3 1/1 Running 0 3s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-1 0/1 OOMKilled 0 9m50s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-1 0/1 Terminating 0 10m
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-1 0/1 Terminating 0 10m
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-4 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-4 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-4 0/1 ContainerCreating 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-4 1/1 Running 0 4s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-3 0/1 OOMKilled 0 5m13s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-3 0/1 Terminating 0 5m30s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-3 0/1 Terminating 0 5m30s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-5 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-5 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-5 0/1 ContainerCreating 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-5 1/1 Running 0 4s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-4 0/1 OOMKilled 0 4m37s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-4 0/1 Terminating 0 5m
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-4 0/1 Terminating 0 5m
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-6 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-6 0/1 Pending 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-6 0/1 ContainerCreating 0 0s
4ec00395a68a46939381e78e5545198b-bba8d875fb41e88d-exec-6 1/1 Running 0 4s
Процесс будет продолжаться до тех пор, пока не будет воссоздано около 30-40 исполнителей, а затем драйвер перезапускается, и тот же процесс разворачивается снова. Я установил для приложения spark
restartPolicy:
type:Never
Комментарии:
1. Просматривая документы, есть различия между версиями 2.4 и 3.0. Хотя я недостаточно знаком с spark — не могли бы вы предоставить дополнительную информацию о сбое ресурсов kubernetes (в чем причина, пожалуйста, используйте журналы и опишите сбойные модули)
2. Итак, если ожидается, что у вас будет так много исполнителей, вам следует проверить конфигурации исполнителей — похоже, ваши ограничения ресурсов слишком высоки из-за
OOMKilled Pods
. Пожалуйста, взгляните на это Kubernetes ООМ убить из-за превышения лимита