如何在YARN中自定义Log4j属性文件

时间:2016-10-05 08:03:42

标签: logging apache-spark log4j yarn

我在Spark集群中运行YARN上的应用程序,但是我需要设置自己的路径来创建日志文件,并且需要更改日志消息的格式。为此,我想使用我自定义的Log4j.properties文件,而不是YARN提供的默认log4j.properties文件。怎么办呢?

1 个答案:

答案 0 :(得分:1)

我使用这个spark-submit脚本将我的log4j.properties推送到Yarn,以便我可以控制日志记录模式。我特别想要完整的软件包名称,因此我可以从生成的Yarn应用程序日志中查看我的日志记录类。

spark-submit \
    --class com.acme.Main \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 2g \
    --executor-memory 1g \
    --driver-class-path "./conf" \
    --files "./conf/app.properties,./conf/log4j.properties" \
    ./lib/my-app-uber.jar \
    "$@"

我个人只使用ConsoleAppender,我的所有应用程序日志记录都会显示在标准Yarn日志中以及其他所有内容中。您无法将RollingFileAppender与HDFS一起使用。

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %-5p %c:%L -> %m%n

你应该在

中看到你的结果
yarn logs -applicationId <your-app-id>