Логи
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