Логи

Event log

Event log – это специальный формат лога в Spark. Лог пишет драйвер, а читает специальный сервис Spark History Server (SHS). SHS запускается вместе с мастером и воркерами при старте кластера SPYT. SHS по логу рисует UI, аналогичный Spark UI.

Отличие между ними в том, что Spark UI доступен на драйвере в момент выполнения джобы, а SHS поднят всегда и может прочитать логи джобов, которые уже завершились.
Логи записываются в динамическую таблицу внутри discovery-path. SHS умеет удалять их автоматически.

Включение

При запуске джобы укажите в конфигурации spark.eventLog.enabled=true, например:

$ spark-submit-yt ... --conf spark.eventLog.enabled=true

Настройка

Подробно настройки SHS описаны в документации Spark. Любые настройки из приведённого описания можно передавать в spark-launch-yt ... --params '{spark_conf={"spark.param"=value;...}}'.

По умолчанию значение параметра spark.history.fs.cleaner.enabled выставлено в true. Значения по умолчанию других параметров такое же как в документации к Spark. При настройках по умолчанию SHS удаляет логи старше недели. Срок хранения логов можно изменить следующей настройкой: spark.history.fs.cleaner.maxAge (spark-launch-yt ... --params '{spark_conf={"spark.history.fs.cleaner.maxAge"="14d";...}}').

Логи с воркеров

При запуске кластера можно настроить отправку логов с воркеров в YTsaurus таблицы. Логи будут записываться по пути {cluster_path}/logs/worker_log, под каждую дату будет создаваться отдельная таблица. Для включения отправки логов при запуске кластера необходимо использовать следующие опции:

  • --enable-worker-log-transfer – включает пересылку логов;
  • --enable-worker-log-json-mode – включает json-режим работы логов. Данные в таблице представляются в более удобном формате, разбиваются на составные части. При отключенной опции логи записываются в одну колонку message;
  • --worker-log-update-interval ... – задает периодичность отправки логов, по умолчанию – 10 минут (10m), не может быть меньше 1 минуты;
  • --worker-log-table-ttl ... – устанавливает время жизни таблиц, по умолчанию – 7 дней (7d).

Посмотреть логи можно в SHS, при просмотре вкладки executors любого application у каждого воркера есть ссылки с префиксом [HS]. Страница логов формируется по таблицам из YTsaurus и, следовательно, доступна, даже если воркера уже нет. Лог существует, пока соответствующая таблица не удалена:

spark-launch-yt ... \
  --enable-worker-log-transfer \
  --enable-worker-log-json-mode \
  --worker-log-update-interval 30m \
  --worker-log-table-ttl 30d
Предыдущая