我在3个不同的VM上的HDP 3节点群集(2个数据节点,1个名称节点)上工作,并使用Ambari进行了监视。我使用Yarn运行我的spark作业,并尝试实现自定义日志。
我在spark conf中设置了每台机器上的log4j.properties文件:
log = /var/log
log4j.rootLogger = WARN, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我的问题是日志仅保存在运行驱动程序的计算机上。因为我在群集模式下使用yarn,所以我当然不想每次运行应用程序时都将日志保存在哪台机器上 如何自动复制每个节点上的日志? 提前了