Spark 中log4j的设置

本文详细介绍了Apache Spark的日志配置方法,特别是如何设置log4j来控制不同组件的日志级别,减少不必要的信息输出,提高shell运行效率。针对Spark SQL与Hive集成时遇到的问题也给出了相应的解决策略。

log4j.rootCategory=ERROR, 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

Set the default spark-shell log level to ERROR. When running the spark-shell,

the

log level for this class is used to overwrite the root logger’s log level, so

that

the user can have different defaults for the shell and regular Spark apps.

log4j.logger.org.apache.spark.repl.Main=ERROR

Settings to quiet third party logs that are too verbose

log4j.logger.org.spark_project.jetty=ERROR
log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMainexprTyper=ERRORlog4j.logger.org.apache.spark.repl.SparkILoopexprTyper=ERROR log4j.logger.org.apache.spark.repl.SparkILoopexprTyper=ERRORlog4j.logger.org.apache.spark.repl.SparkILoopSparkILoopInterpreter=ERROR
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

### Spark 中禁用 Log4j 警告日志 为了控制 Spark 应用程序中的 Log4j 输出,可以调整 `log4j.properties` 或者 XML 文件来改变日志级别。通过设置特定的日志级别为更高的阈值,能够有效地阻止较低级别的消息被记录下来。 对于想要屏蔽警告 (`WARN`) 及其以下等级的日志信息,在配置文件中应将根日志器或其他相关组件的日志级别设为 `ERROR` 或更高: ```properties log4j.rootCategory=ERROR, console ``` 此设定会使得只有错误(`ERROR`) 和致命错误(`FATAL`) 的日志会被显示出来[^1]。 如果希望更精细地控制不同包下的日志输出,则可以在配置文件里单独针对那些包指定不同的日志级别。例如,专门抑制来自 Apache Spark 自身产生的 WARN 级别的日志而不限制其他部分的应用日志: ```properties log4j.logger.org.apache.spark=WARN ``` 上述命令仅影响 org.apache.spark 命名空间内的类所产生的日志行为;它允许 WARN 级别以上的日志继续输出,但不会展示低于该级别的任何内容[^3]。 当使用 spark-shell 或 spark-submit 提交作业时,可以通过传递 JVM 参数的方式加载外部的 log4j 配置文件,从而应用上面提到的变化: ```bash spark-shell \ --conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:/path/to/log4j.properties" \ --conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:/path/to/log4j.properties" ``` 这段脚本指定了驱动端和执行器两端都采用同一份位于 `/path/to/` 下名为 `log4j.properties` 的配置文档来进行初始化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值