Как получить выполнение DAG из пользовательского интерфейса искровой сети после завершения работы, когда я запускаю искру на YARN?

Я часто делаю анализ DAG моей искровой работы во время ее работы. Но, это раздражает, чтобы сидеть и смотреть приложение во время его работы, чтобы увидеть DAG.

Итак, я попытался просмотреть DAg, используя эту вещь под названием spark history-server, которую я знаю, должен помочь мне увидеть прошлые задания. Я легко могу получить доступ к порту 18080, и я могу видеть интерфейс сервера истории.

Но это не показывает мне никакой информации, связанной с выполнением искровой программы. Я знаю, что у меня работает сервер истории, потому что, когда я делаю sudo service --status-all, я вижу

spark history-server is running [ OK ]

Итак, я уже пробовал, что предложил этот вопрос: здесь.

Я думаю, что это потому, что я запускаю искру на YARN, и он может использовать только один менеджер ресурсов за раз? может быть?

Итак, как мне увидеть DAG искрового исполнения, * после завершения задания? и, более конкретно, при запуске YARN в качестве моего менеджера ресурсов?

Ответ 1

Выполнение только history-server недостаточно для выполнения выполнения DAG предыдущих заданий. Вам нужно указать задания для хранения журналов событий всех предыдущих заданий.

Запустить сервер истории Spark ./sbin/start-history-server.sh

Включить журнал событий для искровой работы

spark.eventLog.enabled true
spark.eventLog.dir <path to event log(local or hdfs)>
spark.history.fs.logDirectory  <path to event log(local or hdfs)>

Добавьте их в файл spark-defaults.conf

Ответ 2

Как упоминалось в Monitoring and Instrumentation, нам нужно установить три параметра, которые будут установлены в spark-defaults.conf

spark.eventLog.enabled
spark.eventLog.dir
spark.history.fs.logDirectory

Первое свойство должно быть true

spark.eventLog.enabled           true

Второе и третье свойства должны указывать на местоположения event-log, которые могут быть local-file-system или hdfs-file-system. Второе свойство определяет, где хранить журналы для искровых заданий, а третье свойство - для истории-сервера для отображения журналов в веб-интерфейсе на 18080.

Если вы выберете linux local-file-system (/opt/spark/spark-events)
Либо

spark.eventLog.dir               file:/opt/spark/spark-events
spark.history.fs.logDirectory    file:/opt/spark/spark-events

или

spark.eventLog.dir               file:///opt/spark/spark-events
spark.history.fs.logDirectory    file:///opt/spark/spark-events

должен работать

Если вы выберете hdfs-file-system (/spark-events)
Либо

spark.eventLog.dir               hdfs:/spark-events
spark.history.fs.logDirectory    hdfs:/spark-events

или

spark.eventLog.dir               hdfs:///spark-events
spark.history.fs.logDirectory    hdfs:///spark-events

Или

spark.eventLog.dir               hdfs://masterIp:9090/spark-events
spark.history.fs.logDirectory    hdfs://masterIp:9090/spark-events

должен работать там, где masterIp:9090 является свойством fs.default.name в конфигурации core-site.xml hadoop.

Сервер истории искры Apache можно запустить с помощью

$SPARK_HOME/sbin/start-history-server.sh

Третий сторонний сервер истории искры, например Cloudera может быть запущен

sudo service spark-history-server start

И чтобы остановить сервер истории (для Apache)

$SPARK_HOME/sbin/stop-history-server.sh

Или (для cloudera)

sudo service spark-history-server stop