使用spark-submit时,Spark会关闭日志记录

时间:2017-10-25 20:12:06

标签: scala apache-spark log4j

我正在运行要提交的scala Spark应用程序vi spark-submit:

spark-submit --class "com.foo.bar.MyClass" \
         --master yarn \
         --driver-memory 1g \
         --executor-memory 1g \
         --num-executors 2 \
         --executor-cores 2 \
         --jars <path-to>/MyJar.jar \
                <path-to>/MyJar.jar

我已经尝试了几乎我能想到或找到herehereherehere等log4j的每个配置。我在代码中添加了以下几行:

Logger.getRootLogger().setLevel(Level.WARN)

在其他方面,试图压制个别类。

我还在我的Main中添加了一行输出来证明它的级别:

println("Log level = " + LogManager.getRootLogger.getLevel())

它将显示我更改值的任何内容。如果我更改上面的setlevel代码行,它总是打印出该值,如果我取出代码行,它将打印我在SPARK_HOME / conf / log4j.properties文件中的任何内容,如果我添加了 - conf&#34; spark.driver.extraJavaOptions&#34;它会显示我放在那里的东西。

最重要的是,我可以更改任何这些设置,应用程序会打印出日志级别的设置,但无论如何,我都会从Spark获取MB的日志记录。

有关如何禁用Spark的所有详细日志记录的任何其他建议?

1 个答案:

答案 0 :(得分:1)

  1. 从中创建log4j-configurations.properties log4j.properties/template
  2. 在conf或配置下添加它 项目文件夹
  3. 使用以下行添加到脚本中 火花提交:
  4. --conf 'spark.executor.extraJavaOptions=-Dlog4j.configuration=prop/file/location'\
    --conf 'spark.driver.extraJavaOptions=-Dlog4j.configuration=prop/file/location'\