gpt4 book ai didi

java - 通过Java触发的Spark程序中自定义log4j进行日志记录

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:38 24 4
gpt4 key购买 nike

我需要从 java 实用程序触发 Spark 程序,并且需要将 java 程序的语句和 Spark 日志记录在文件系统中的同一文件中。

我尝试在 SparkLauncher 上使用 setConf、addSparkArg 、 --driver-java-options 但无济于事。

是否可以将 java 和 Spark 的语句记录到同一个文件中。如果可以,我该怎么做。

问候

最佳答案

选项 1 当您以编程方式启动 SparkLauncher 时,您可以使用以下方法将日志记录重定向到应用程序记录器:redirectToLoghttps://spark.apache.org/docs/2.3.0/api/java/org/apache/spark/launcher/SparkLauncher.html#redirectToLog-java.lang.String-例如:

private static final Logger LOG = LoggerFactory.getLogger(Application.class);
//in your launcher init method.
SparkLauncher sparkLauncher = new SparkLauncher();
sparkLauncher.redirectToLog(LOG.getName());

这里的记录器是SLF4J。

选项 2据我所知,Spark默认使用log4j(如果您愿意,您可以将slf4j与logback一起使用)。您可以在您的应用程序中配置 log4j,该应用程序将在您的 CLASSPATH 上可用。例如,您可以在built.sbt中包含javaOptions:

javaOptions in run ++= Seq(
"-Dlog4j.debug=true",
"-Dlog4j.configuration=log4j.properties")

并将 log4j.properties 放入 src/main/resources 中。默认的 Spark log4j 属性模板应位于 $SPARK_HOME/conf 中,您可以使用它来配置记录器。

关于java - 通过Java触发的Spark程序中自定义log4j进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49515510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com