Ведение журнала LOG4J не работает в режиме кластера Spark - PullRequest
0 голосов
/ 08 января 2020

У меня есть приложение pyspark и логирование с log4j.

Проблема в том, что когда я запускаю приложение spark в режиме yarn-client, ведется запись в журнал, но когда я запускаю приложение в режиме yarn-cluster, этого не происходит.

Мне нужен журнал сообщения, которые будут напечатаны и сохранены в виде файла в кластерном режиме.

Уже пробовал

Spark-submit —-files option
and setting spark.executor.extrajavaoptions and spark.driver.extrajavaoptions.

My log4j.properties

log4j.rootCategory=INFO,FILE
log4j.appender.FILE=org.apache.log4j.RollingFileAppender


log4j.appender.FILE.File=/some/path/to/edgeNode/SparkDriver.log

log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

1 Ответ

0 голосов
/ 09 января 2020

Если вы хотите sh предоставить свой пользовательский файл log4j, сделайте это, указав его в команде spark-submit. это так, потому что после запуска spark собственный файл log4j имеет приоритет над другими конфигами log4j. Укажите файл log4j как часть драйвера. java .options flag. Если вы выполняете свою работу в режиме кластера вместо клиента, укажите файл log4j в spark.executors.extraJavaOptions . Помните, что место, где предполагается запись журналов, должно быть доступно как узлу драйвера, так и вашим вычислительным узлам.

...