小编Bor*_*rja的帖子

Spark——从运行spark-submit的JAR加载log4j

我为我的 Spark 应用程序开发了一个自定义 log4j:

#######################
#    Roll by time     #
#######################
log4j.logger.myLogger=DEBUG, file 
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern = contactabilidad_%d{yyyy-MM-dd-hh}.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C:%L - %m%n
log4j.appender.file.encoding=UTF-8
log4j.appender.file.MaxFileSize=5MB
Run Code Online (Sandbox Code Playgroud)

我将项目打包到 JAR 中,并在 Spark-Submit 中运行它。

我只想将日志写入文件,正如我所做的那样,当文件log4j.properties进入我运行 Spark-submit 的文件系统并在命令 java-options 中定义此路径时。

spark-submit --class com.path.to.class.InitialContactDriver 
--driver-java-options "-Dlog4j.configuration=file:log4j.properties" 
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties" 
--master yarn    /home/cloudera/SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

我的观点是: 我不能引用 JAR 内的日志文件吗?

JAR 内的内容

正如我对类所做的那样:--class com.path.to.class.InitialContactDriver

我将在有限的环境中运行该应用程序,并且我不想将文件上传到 FS,只需使用 JAR 中的内容即可。那可能吗?如果不是,为什么不呢?

提前致谢!:)

log4j apache-spark spark-submit

2
推荐指数
1
解决办法
3196
查看次数

标签 统计

apache-spark ×1

log4j ×1

spark-submit ×1