zoukankan      html  css  js  c++  java
  • Spark应用日志级别设置

    一. 日志效率原因

    开发时,控制台输出一大堆日志信息,严重影响查看日志效率。
     

    从控制台输出日志我们可以看出,应用程序是默认加载Spark-core包下面的log4j-defaults.properties日志文件。查看log4j-defaults.properties文件

     
    由上图可知,Spark-core包设置默认的日志级别为info,所以我们才看到一大堆日志信息。
    那针对以上问题,在开发过程中我们如何解决?

    二. 日志级别解决方法

    方式一.局部应用设置

    针对SparkContext应用,Spark有专门的api设置日志级别,如下:
    上述方法,只针对SparkContext相关的应用,而对Spark Streaming等应用无效果。

    方式二.全局应用设置

    针对spark所有应用,可以在Java工程目录中新建/src/main/resources目录,把log4j.properties放置该目录。
     
    log4j.properties生成:
    1. Spark中conf默认配置文件是log4j.properties.template,可以将其改名为log4j.properties;
    2. 将Spark-core包中的log4j-default.properties内容复制到log4j.properties文件。
     
    #log4j内容如下
        #  
        # Licensed to the Apache Software Foundation (ASF) under one or more  
        # contributor license agreements.  See the NOTICE file distributed with  
        # this work for additional information regarding copyright ownership.  
        # The ASF licenses this file to You under the Apache License, Version 2.0  
        # (the "License"); you may not use this file except in compliance with  
        # the License.  You may obtain a copy of the License at  
        #  
        #    http://www.apache.org/licenses/LICENSE-2.0  
        #  
        # Unless required by applicable law or agreed to in writing, software  
        # distributed under the License is distributed on an "AS IS" BASIS,  
        # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
        # See the License for the specific language governing permissions and  
        # limitations under the License.  
        #  
          
        # 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,即:
    log4j.rootCategory=WARN, console

    三. 日志级别设置效果

     
     
  • 相关阅读:
    Docker配置samba共享
    阿里云SSL 免费证书申请方法
    linux centos7 关闭防火墙的方法
    PHP 面向对象的特性 抽象类和接口
    详解mixphp的依赖注入控制反转
    swoole mixphp swoolefor热更新使用方法
    nginx ab并发测试 apr_socket_recv: Connection refused (111
    PHP golang java 并发测试
    php.ini 添加的模块没更新的解决方法
    关于golang的未来的道路
  • 原文地址:https://www.cnblogs.com/itboys/p/7843012.html
Copyright © 2011-2022 走看看