Spark应用日志级别设置

  1. 方法一

    针对所有应用
    在 spark 工程的 resources 目录下,新建 log4j.properties 文件
    内容如下:

    log4j.rootLogger=${root.logger}
    # 此处修改 INFO为对应的日志级别即可  (ERROR WARN INFO DEBUG)
    root.logger=INFO,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{2}: %m%n
    shell.log.level=WARN
    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.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
    log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR
    log4j.logger.org.apache.spark.repl.Main=${shell.log.level}
    log4j.logger.org.apache.spark.api.python.PythonGatewayServer=${shell.log.level}
    

    其实文件内容可以拷贝 Spark 的 conf 目录下的 log4j.properties 即可。

    [root@cdh01 conf]# pwd
    /opt/cloudera/parcels/CDH/lib/spark/conf
    [root@cdh02 conf]# ll
    总用量 36
    -rw-r--r-- 1 root root 13585 6月  11 22:51 classpath.txt
    -rw-r--r-- 1 root root    20 6月  11 22:51 __cloudera_generation__
    -rw-r--r-- 1 root root    69 6月  11 22:51 __cloudera_metadata__
    -rw-r--r-- 1 root root   888 6月  11 22:51 log4j.properties
    -rw-r--r-- 1 root root     0 6月  11 22:51 navigator.lineage.client.properties
    -rw-r--r-- 1 root root  1697 6月  11 22:51 spark-defaults.conf
    -rw-r--r-- 1 root root  2126 6月  11 22:51 spark-env.sh
    drwxr-xr-x 2 root root   233 6月  11 22:51 yarn-conf
    
  2. 方法二

    只针对 SparkContext 应用,对 Sparkstreaming 等应用无效

    val sc: SparkContext = new SparkContext(conf)
    #  ERROR WARN INFO DEBUG
    sc.setLogLevel("WARN")
    

你可能感兴趣的:(Spark)