Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 火花应用记录器_Java_Apache Spark_Log4j - Fatal编程技术网

Java 火花应用记录器

Java 火花应用记录器,java,apache-spark,log4j,Java,Apache Spark,Log4j,我正试图让我的spark应用程序登录到它自己的日志文件中,我不想让我所有的东西都和spark的日志文件混在一起,它是不可读的 由于Spark库的兼容性,我放弃了使用Logback,所以我选择了log4j。我在java应用程序的src/main/resources中创建了我的定制log4j.properties,但是当我启动jar的spark提交时,我的所有日志都被写入spark的工作日志文件中。它缝合了自定义log4j。我的jar中的属性被忽略了 这是命令: ./spark-submit --j

我正试图让我的spark应用程序登录到它自己的日志文件中,我不想让我所有的东西都和spark的日志文件混在一起,它是不可读的

由于Spark库的兼容性,我放弃了使用Logback,所以我选择了log4j。我在java应用程序的src/main/resources中创建了我的定制log4j.properties,但是当我启动jar的spark提交时,我的所有日志都被写入spark的工作日志文件中。它缝合了自定义log4j。我的jar中的属性被忽略了

这是命令:

./spark-submit --jars /home/user/LIBRERIE/ORACLE/ojdbc8.jar,\
/home/user/.m3/repository/org/mongodb/spark/mongo-spark-connector_2.11/2.3.0/mongo-spark-connector_2.11-2.3.0.jar,\
/home/user/.m3/repository/org/mongodb/mongo-java-driver/3.8.1/mongo-java-driver-3.8.1.jar,\
/home/user/.m3/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar \
--class my.pkg.common.SparkHandlerStandalone \
--master  spark://162.16.215.59:7077 \
--deploy-mode cluster \
/home/user/NetBeansProjects/SparkScala/target/SparkScala-1.0-SNAPSHOT.jar
我的log4j.properties:

log4j.rootLogger=DEBUG, file

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/home/user/TEMP/Spark/sparkapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n

有人知道如何分离这两个日志吗?

请在log4j属性文件中为自定义日志创建不同的类别

log4j.appender.customLog=org.apache.log4j.FileAppender
log4j.appender.customLog.File=/home/user/TEMP/Spark/sparkapp.log
log4j.appender.customLog.layout=org.apache.log4j.PatternLayout
log4j.appender.customLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n

log4j.category.customLog=INFO, debugLog
log4j.additivity.customLog=false
在应用程序代码中,按如下方式配置记录器

static final Logger customLog = Logger.getLogger("customLog");
customLog.info("Test msg")
确保在extraJava选项中设置了定制的log4j属性

spark.executor.extraJavaOptions=-Dlog4j.configuration=/home/hadoop/spark-conf/log4j.properties

spark.driver.extraJavaOptions=-Dlog4j.configuration=/home/hadoop/spark-conf/log4j.properties

你查过这篇文章的答案了吗?是的,但这不是我需要的。我想把我的日志和spark日志分开,这篇文章讨论spark日志的日志级别。我想知道我是否必须把Spark log4j配置文件的内容和我的东西混在一起,我真的希望不是。你可以创建一个单独的日志appender,然后将logger分配给appender。您可以指定记录器包、日志级别等。。。。我们有一个罐子地狱(旧地狱的孩子)。我们的岁月是地狱的岁月。每为POM中的依赖项添加六个或七个模块,就必须删除此组件,因为它会导致问题。。。