用途 - 将自定义日志从流应用程序存储到 HDFS 或 UNIX 目录以用于流应用程序
我在集群模式下运行火花流程序。但是日志没有被写入给定的日志路径。检查了 HDFS 和本地目录。通过 log4j 调试属性,我可以看到正在运行的文件。我错过了什么吗?
--files log4j_driver.properties
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j_driver.properties -Dlog4j.debug=true "
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j_driver.properties - Dlog4j.debug=true"
Log4j-属性文件
我的 Log4j 属性文件 -
日志=/tmp/cc
log4j.rootLogger=INFO,滚动
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
log4j.appender.rolling.File=${log}/abc.log
log4j.appender.rolling.layout=org.apache.log4j。 PatternLayout
log4j.appender.rolling.layout.conversionPattern=[%d] %p %m (%c)%n
log4j.appender.rolling.maxFileSize=2KB
log4j.appender.rolling.maxBackupIndex=10
log4j.appender.rolling.encoding =UTF-8
log4j.logger.org.apache.spark=INFO
log4j.appender.rolling.ImmediateFlush=true
log4j.appender.rolling.Threshold=debug
log4j.appender.rolling.Append=true
log4j.logger.org.eclipse。码头=信息
集群驱动程序日志
log4j:将文件 /tmp/cc/abc.log.2 重命名为 /tmp/cc/abc.log.3
log4j:将文件 /tmp/cc/abc.log.1 重命名为 /tmp/cc/abc.log.2
log4j:将文件 /tmp/cc/abc.log 重命名为 /tmp/cc/abc.log.1
log4j:setFile 调用:/tmp/cc/abc.log,false
log4j:setFile 结束
log4j:滚动计数 = 5141
log4j : maxBackupIndex=10
log4j: 将文件 /tmp/cc/abc.log.9 重命名为 /tmp/cc/abc.log.10
log4j: 将文件 /tmp/cc/abc.log.8 重命名为 /tmp/cc/abc .log.9
log4j:将文件 /tmp/cc/abc.log.7 重命名为 /tmp/cc/abc.log.8
log4j:将文件 /tmp/cc/abc.log.6 重命名为 /tmp/cc/abc .log.7
我读到 - 我们可以在 log4j 中指定 - ${spark.yarn.app.container.log.dir}/app.log 但不确定此属性的默认路径是什么,或者我们是否还需要手动设置。当我在客户端模式下运行此应用程序时 - 日志完美地记录到本地目录。