Я создаю приложение Apache Spark Streaming и не могу записать его в файл в локальной файловой системе при запуске в YARN. Как этого добиться?
Я установил log4.properties
файл так, чтобы он мог успешно записывать в файл журнала в /tmp
каталоге локальной файловой системы (частично показано ниже):
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/tmp/application.log
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Когда я запускаю свое приложение Spark локально, используя следующую команду:
spark-submit --class myModule.myClass --master local[2] --deploy-mode client myApp.jar
Он работает нормально, и я вижу, что сообщения журнала записываются в /tmp/application.log
в моей локальной файловой системе.
Но когда я запускаю то же приложение через YARN, например
spark-submit --class myModule.myClass --master yarn-client --name "myModule" --total-executor-cores 1 --executor-memory 1g myApp.jar
or
spark-submit --class myModule.myClass --master yarn-cluster --name "myModule" --total-executor-cores 1 --executor-memory 1g myApp.jar
Я не вижу никаких /tmp/application.log
в локальной файловой системе машины, на которой работает YARN.
Что мне не хватает.