当前位置:   article > 正文

spark log4j日志文件动态参数读取

spark log4j日志文件动态参数读取

需要在log4j xml文件中设置动态参数,并支持spark任务在集群模式下,动态参数读取正常;

1.log4j配置文件 log4j2.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration status="info" name="Log-Appender-Config" >
  3. <Properties>
  4. <Property name="logServerHost">${sys:logServer}</Property>
  5. <Property name="logServerPort">${sys:logServerPort}</Property>
  6. </Properties>
  7. <Appenders>
  8. <Socket name="Socket" host="${logServerHost}" port="${logServerPort}" >
  9. <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5p [%-t] - %m%n"/>
  10. <ThresholdFilter level="info" />
  11. </Socket>
  12. <Async name="Async">
  13. <AppenderRef ref="Socket"/>
  14. </Async>
  15. <Console name="stdout" target="SYSTEM_OUT">
  16. <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5p [%-7t] %F:%L - %m%n"/>
  17. <ThresholdFilter level="info" />
  18. </Console>
  19. </Appenders>
  20. <Loggers>
  21. <Logger name="org.apache.spark" level="info" additivity="false">
  22. <AppenderRef ref="Socket"/>
  23. </Logger>
  24. <Root level="info">
  25. <AppenderRef ref="stdout"/>
  26. </Root>
  27. </Loggers>
  28. </Configuration>

spark 配置log4j2.xml,并设置了两个动态参数,logServer和logServerPort;

spark提交任务后driver和executer均需要获取上述参数初始化日志配置;

2.driver和executer获取参数方式

  1. --conf "spark.driver.extraJavaOptions=-DlogServer=127.0.0.1 -DlogServerPort=60201"
  2. --conf "spark.executor.extraJavaOptions=-DlogServer=127.0.0.1 -DlogServerPort=60201"

spark提交任务时设定动态参数值,给driver和executer设置额外jvm参数;

注意:

参数key命名不要以spark*开头,会被spark认为是内部变量,在Spark中,spark.executor.extraJavaOptions是用来为Executor进程设置额外的JVM选项的,但不包括Spark的内部配置选项;

错误示例如下:

Caused by: java.lang.Exception: spark.executor.extraJavaOptions is not allowed to set Spark options (was '-Dspark.log.server=127.0.0.1 -Dspark.log.server.port=60201'). Set them directly on a SparkConf or in a properties file when using ./bin/spark-submit.

将上述key名spark.log.server和spark.log.server.port修改为非spark开头即可;

参考:

https://www.cnblogs.com/yanhuahayi/p/14297615.html

Log4j2.xml中动态读取配置_log4j2 动态属性读取-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/360390
推荐阅读
相关标签
  

闽ICP备14008679号