Искра на уборщице Кубернетеса - PullRequest
1 голос
/ 16 октября 2019

Я выполняю некоторые задания, используя Spark на K8S, и иногда мои исполнители умирают в середине работы. Всякий раз, когда это происходит, драйвер немедленно удаляет вышедший из строя модуль и порождает новый.

Есть ли способ остановить Spark от удаления завершенных модулей исполнителя? Это значительно упростит отладку ошибки.

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

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Этот параметр был добавлен в SPARK-25515 . К сожалению, он недоступен для текущей версии, но он должен быть доступен в Spark 3.0.0

1 голос
/ 16 октября 2019

используйте job.spec.ttlSecondsAfterFinished, чтобы определить, как долго будет работать модуль после того, как задание будет завершено / не выполнено.

для пример :

apiVersion: batch/v1
kind: Job
metadata:
  name: pi-with-ttl
spec:
  ttlSecondsAfterFinished: 100
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never

Заданиеpi-with-ttl будет иметь право на автоматическое удаление через 100 секунд после его завершения.

Если для поля установлено значение 0, задание будет автоматически удалено сразу после его завершения. Если поле не установлено, это задание не будет очищено контроллером TTL после его завершения.

Обратите внимание, что этот механизм TTL является альфа-версией с функциональным элементом TTLAfterFinished. Для получения дополнительной информации см. Документацию для TTL-контроллер для получения готовых ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...