我们在每次启动和运行SPARK时,会出现大量的INFO信息,一些WARN和ERROR信息隐藏在其中,这可能会被我们忽略掉,同时对阅读造成了很多不便,所有可以将这些不太重要的信息过滤掉。方法是:
1. 进入$SPARK_HOME/conf目录下,拷贝一个log4j.properties.template,命名为log4j.properties,可以使用下面的语句完成:
$ cp log4j.properties.template log4j.properties
2. 进入log4j.properties文件,将其中的INFO修改为WARN(第二行位置),内容如下:
# Set everything to be logged to the console
log4j.rootCategory=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark-project.jetty=WARN
log4j.logger.org.spark-project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR
# SPARK-9183: Settings to avoid annoying messages when looking up nonexistent UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR
经过以上两步的修改,就可以达到只显示WARN和ERROR信息的目的,感觉清爽了许多。