赞
踩
Spark有多种方式设置日志级别,这次主要记录一下如何在Spark-submit设置Spark日志级别,本文介绍三种方式
spark-submit \
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties"
或者
spark-submit \
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:/log4j.xml"
这里的log4j配置可以是 log4j.properties 或者 log4j.xml ,没有限制
其中log4j.properties/xml为我将本地的日志文件,拷贝到执行spark-submit的机器上
spark中提供了log4j的方式记录日志。可以在**$SPARK_HOME/conf/下,将 log4j.properties.template 文件copy为 log4j.properties 来启用log4j配置。但这个配置为全局配置, 不能单独配置某个job的运行日志。如下介绍spark (streaming) job独立配置**的log4j的方法。
设置方法
spark job提交时可以在 --conf 中配置log4j.configuration 参数来指定log4j 配置文件,例如:
spark-submit \
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:/log4j.xml"
(这里的log4j配置可以是 log4j.properties 或者 log4j.xml ,没有限制)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' > <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender"> <param name="file" value="${log_name}.log" /> <param name="threshold" value="INFO"/> <param name="DatePattern" value="yyyyMMdd"/> <param name="append" value="true" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c(%L) - %m%n"/> </layout> </appender> <root> //指出日志级别 <priority value ="INFO"/> <appender-ref ref="FILE"/> </root> </log4j:configuration>
对于<param name="file" value="${log_name}.log" >
可以写死一个log路径,也可以在代码中做设置,例如设置log名字为myLog,可以在Logger初始化之前 设置: System.setProperty(“log_name”, “myLog”);
cd $SPARK_HOME/conf
cp log4j.properties.template log4j.properties
vim log4j.properties
将log4j.rootCategory=INFO, console改为log4j.rootCategory=WARN, console
spark.sparkContext.setLogLevel("WARN")
$Spark_HOME/conf
下的log4j.properties即可Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。