Я хочу собрать сообщения журнала, созданные приложением spark, в файл в локальной файловой системе.Мне удалось добиться этого, когда я запустил приложение в режиме клиента, однако я столкнулся с трудностями при запуске в режиме кластера.
Моя конфигурация для log4j:
# Root logger option
log4j.rootLogger=ERROR, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p: %c %m%n
#Direct log messages to a file
log4j.logger.com.bosch.bidos=INFO, file
log4j.additivity.com.bosch.bidos=false
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=${user.home}/test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %-5p: %c: %m%n
И вот моя искра отправки:
spark2-submit \
--name test \
--master yarn \
--deploy-mode cluster \
--class Main \
--files path/to/test_log4j.properties \
--conf spark.driver.extraJavaOptions="-Dlog4j.configuration=test_log4j.properties -Dlog4j.debug" \
--conf spark.executor.extraJavaOptions="-Dlog4j.configuration=test_log4j.properties -Dlog4j.debug" \
${jar_path}
Когда я отлаживаю приложение, я вижу, что задан test_log4j.файл свойств читается.
Я что-то упустил?