我们尝试了各种解决方案,包括更改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