我们尝试了各种解决方案,包括更改log4j.properties文件,通过--file将文件复制到执行程序,然后告诉他们将其用作通过--conf传递给spark的arg,并尝试更新配置EMR集群本身 .
来自系统的警告消息在执行程序日志中可见 . 来自主类的警告消息是可见的,但来自任何其他类的消息都没有通过以太网,我们不确定问题是什么 .
日志记录级别很好,如Spark生成的消息所示,但其他类消息未通过 .
驱动程序日志(来自EMR控制台的主页面)显示来自其他类的调试消息,执行程序日志(通过Spark UI Executor选项卡)不显示 .
非常感谢任何帮助,谢谢 .
这是一个在Spark 1.6上运行的流媒体应用程序 . 以下是我们尝试过的一些选项 .
正常运行步骤: Arguments: spark-submit --deploy-mode client --master yarn --class main jarLoc
在群集配置级别设置额外火花记录配置:
{"classification":"spark-log4j", "properties":{"log4j.logger.MainClass$":"DEBUG",
"log4j.logger.org.apache.spark":"WARN", "log4j.logger.org.apache.hadoop":"WARN", "log4j.logger.com.amazonaws.services":"WARN", "log4j.logger.com.companyName":"INFO", "log4j.logger.org.spark-project":"WARN"}, "configurations":[]}
当前的log4j属性文件:
log4j.rootLogger=INFO, STDOUT
log4j.logger.deng=DEBUG
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %t %x %-5p %-10c:%m%n
log4j.logger.MainClass$=DEBUG
log4j.logger.com.sessioncam=INFO
log4j.logger.org.apache.spark=WARN
log4j.logger.com.amazonaws.services=WARN
log4j.logger.org.spark-project=WARN
log4j.logger.org.apache.hadoop=WARN
我试过的事情:
spark-submit --deploy-mode client --master yarn --class MainClass--conf spark.executor.extraJavaOptions=-Dlog4j.configuration=file:/tmp/files/log4j.properties /tmp/files/jar.jar
Arguments: spark-submit --deploy-mode client --master yarn --class MainClass--files /tmp/files/log4j.properties /tmp/files/jar.jar
1 回答
日志最终在实际处理任务的执行程序的本地JVM中 .
当您转到Spark UI时,您可以查看执行程序 . 当转到
stdout
和stderr
时,您可以看到实际执行程序的输出希望这可以帮助 .