【问题标题】:How to set up logging level for Spark application in IntelliJ IDEA?如何在 IntelliJ IDEA 中为 Spark 应用程序设置日志记录级别?
【发布时间】:2015-11-04 06:23:41
【问题描述】:

我正在使用 IntelliJ 开发一个通过 SBT 创建的 Scala 项目。该项目将 Spark 作为其依赖项之一。我仍处于开发阶段,所以一切都在我的本地机器上运行。

如何更改 Spark 配置,例如日志记录级别?

【问题讨论】:

标签: scala intellij-idea apache-spark


【解决方案1】:

在 SparkContext 上设置日志级别在 Eclipse 下对我有用

spark.sparkContext.setLogLevel("WARN")  

【讨论】:

  • 这对我有用。为所有记录器设置日志级别的公认答案不起作用。虽然,这样做的一个问题是,我没有看到任何日志,甚至没有来自我的应用程序的日志。不知道是因为这个还是别的原因。
【解决方案2】:

如果您使用 IDE 进行本地开发,您可以通过以下方式在运行时更改日志级别:

LogManager.getRootLogger.setLevel(Level.ALL)

Ps:在您的代码中创建 SparkContext/SQLContext 之后添加该行。

【讨论】:

  • 它不适合我。我尝试了Level.OFFLevel.ERROR,但我总是收到INFO 日志消息。我正在使用火花 2.1.0
  • 我显然遇到了同样的问题。
  • 我也是,你能跟进这个stackoverflow.com/questions/59848344/…
【解决方案3】:

我很想弄清楚如何使用项目本地属性文件(一个示例文件会很好)来做到这一点,但我能够使用以下代码在 Spark 2.2 中完成此操作:

import org.apache.log4j.{Level, Logger}

object MySparkApp {

    def main(args: Array[String]): Unit = {
      Logger.getLogger("org.apache.spark").setLevel(Level.WARN)

【讨论】:

    【解决方案4】:

    将你的 log4j.properties 文件放在标记为资源的目录下,spark 会读取这个 log4j 配置。

    【讨论】:

      【解决方案5】:

      用于在 spark 2.0+ 中以编程方式关闭/设置日志级别

      Logger.getLogger("org.apache.spark").setLevel(Level.OFF);
      

      【讨论】:

        【解决方案6】:

        默认情况下,Spark 会记录您希望在日志中看到的几乎所有内容,但是,如果您需要更改日志记录行为,您可以在 Apache Spark 配置的 conf 目录中编辑 log4j.properties。如果您使用的是预构建版本,您可以在 /home/coco/Applications/spark-1.4.0-bin-hadoop2.6/conf 目录中找到它。有一个模板文件“log4j.properties.template”,您必须将其复制到“log4j.properties”并根据您的需要对其进行编辑。希望对你有帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-27
          • 2023-03-24
          • 1970-01-01
          • 1970-01-01
          • 2018-05-31
          • 1970-01-01
          • 2011-07-26
          • 1970-01-01
          相关资源
          最近更新 更多