gpt4 book ai didi

apache-spark - 抑制 Apache Spark 日志中的 OutputRedirector 文本

转载 作者:行者123 更新时间:2023-12-02 00:45:50 25 4
gpt4 key购买 nike

在我的 Spark 应用程序中,我的日志记录如下:

Logger log = spark.log();

log.info("**************************************************");
log.info("Pi is roughly " + 4.0 * count / n);
log.info("**************************************************");

但是,我的日志目前如下所示:

Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: **************************************************
Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: Pi is roughly 3.138936
Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: **************************************************

我希望它能够清理它,使其看起来像这样:

INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: **************************************************
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: Pi is roughly 3.138936
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: **************************************************

在这种情况下,log4j.properties 文件似乎对我没有帮助,因为似乎所有日志记录都通过 OutputRedirector 类进行。有办法解决这个问题吗?

最佳答案

tldr;

抑制标题

Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect :

将此添加到您的代码中 System.setProperty("java.util.logging.SimpleFormatter.format","%5$s%6$s%n");

<小时/>

client 中运行 Spark针对独立 Spark 集群的模式使用 2 个日志框架。

  • org.apache.spark.launcher.SparkLauncher 使用的 java.util.logger
  • 绑定(bind)到 slf4j 的嵌入式驱动程序的日志记录框架。就我而言,它是 log4j。

要控制嵌入驱动程序日志记录的格式,请使用以下命令
前面的答案中提到的系统属性:

  • spark.driver.extraJavaOptions=-Dlog4j.configuration=file:<path>/log4j.xml
  • spark.executor.extraJavaOptions=-Dlog4j.configuration=file:<path>/log4j.xml

抑制Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect :

  1. 将嵌入式驱动程序日志重定向到记录器

sparkLauncher.redirectToLog(createLogger("spark-pi"));private java.util.logging.Logger createLogger(String appName) throws IOException {    final java.util.logging.Logger logger = getRootLogger();    final FileHandler handler = new FileHandler("./" + appName + "-%u-%g.log", 10_000_000, 5, true);    handler.setFormatter(new SimpleFormatter());    logger.addHandler(handler);    logger.setLevel(Level.INFO);    return logger;}private java.util.logging.Logger getRootLogger() {    final java.util.logging.Logger logger = java.util.logging.Logger.getLogger(java.util.logging.Logger.GLOBAL_LOGGER_NAME);    Arrays.stream(logger.getHandlers()).forEach(logger::removeHandler);    //Without this the logging will go to the Console and to a file.    logger.setUseParentHandlers(false);    return logger;}
  • System.setProperty("java.util.logging.SimpleFormatter.format","%5$s%6$s%n");
  • 这会更改 SimpleFormatter 的默认日志记录模式。请参阅jdk docs .

    关于apache-spark - 抑制 Apache Spark 日志中的 OutputRedirector 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43600992/

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