我正在构建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
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令在本地运行我的Spark应用程序时:
spark-submit --class myModule.myClass --master local[2] --deploy-mode client myApp.jar
Run Code Online (Sandbox Code Playgroud)
它运行正常,我可以看到日志消息写入/tmp/application.log我的本地文件系统.
但是,当我通过YARN运行相同的应用程序时,例如
spark-submit --class myModule.myClass --master yarn-client --name "myModule" --total-executor-cores 1 --executor-memory 1g myApp.jar
Run Code Online (Sandbox Code Playgroud)
要么
spark-submit --class myModule.myClass --master yarn-cluster --name "myModule" --total-executor-cores 1 --executor-memory 1g myApp.jar
Run Code Online (Sandbox Code Playgroud)
我/tmp/application.log在运行YARN的机器的本地文件系统上看不到任何内容.
我错过了什么