sparkstreaming 로그 분할 설정

5519 단어 빅 데이터spark
Spark Standalone 모드 에서 spark 는 기본적으로 org / apache / spark / log4j - defaults. properties 설정 을 사용 합 니 다. 모든 로 그 는 stderr 에 기록 되 어 있 습 니 다. Spark Streaming 응용 프로그램 이 계속 실행 되 기 때문에 시간 이 지나 면 stderr 파일 이 매우 크 고 공간 을 차지 하 는 동시에 디 버 깅 과 포 지 셔 닝 문 제 를 해결 하기 어렵 기 때문에 로 그 를 분리 해 야 합 니 다.spark 네 이 티 브 는 Executor 로그 에 대한 절 점 을 제공 합 니 다. Driver 로 그 는 로그 4j 를 따로 설정 해 야 합 니 다.
  • Executor 로그 분할, spark 응용 환경 변수 에 설정
  •   spark.executor.logs.rolling.strategy  time  //     (time)     (size)     
      spark.executor.logs.rolling.time.interval daily  //    、  、    
      spark.executor.logs.rolling.maxRetainedFiles 7  //         ,        

    1
    2
    3
    또는 로그 생 성 방식 을 사용자 정의 할 수 있 습 니 다. 매개 변수 spark. executor. extraJavaOptions 를 설정 하면 log4j 설정 을 지정 합 니 다. - 드라이버 로그 분할 sparksubmit 에 서 는 log4j 를 사용자 정의 합 니 다. – driver - java - options "- Dlog4j. configuration = file: / $PATH / log4j - driver. properties - DApp. logging. name = NAME", NAME 로 서로 다른 spark 애플 리 케 이 션 을 구분 합 니 다.
     log4j.rootCategory=INFO,  FILE
     log4j.appender.FILE.Threshold=info 
     log4j.appender.FILE.file=/$PATH/${app.logging.name}-driver.log  
     log4j.appender.FILE.DatePattern='.'yyyy-MM-dd 
     log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
     log4j.appender.FILE.layout.ConversionPattern=[%p] %d %c %M - %m%n 

    회전:https://blog.csdn.net/dylanzhouz/article/details/53098508
    --------------------------------------------------------------------------------------------------------------------------------------
    둘.
    spark on yarn 의 로 그 는 stderr 에 계속 추가 되 고 streaming 은 긴 응용 이기 때문에 stderr 는 계속 증가 할 것 입 니 다.해결 방법 은 stderr 를 하늘 에 따라 자 르 는 것 입 니 다. 그러면 우 리 는 이전의 로 그 를 삭제 할 수 있 습 니 다.
    1. 우선, 클 러 스 터 에 있 는 hadop 의 log 4 j 파일 / etc / hadop / conf / log 4 j. properties 를 다음 두 줄 로 추가 합 니 다.
    log4j.additivity.com.kingsoft = false     com. kingsoft 는 프로젝트 의 가방 이름 log4j. additivity. org. apache. spark = false
    그리고 log4j. appender. console. layout. ConversionPattern =% d {yy / MM / dd HH: mm: ss}% p% c {2}:% m% n 의% c {2} 을% c {30} 으로 변경 합 니 다.
    최종 결 과 는 다음 과 같다.
    log4j.rootLogger=${root.logger}root.logger=INFO,consolelog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.target=System.errlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{30}: %m%nlog4j.additivity.com.kingsoft = falselog4j.additivity.org.apache.spark = false
    2. log4j. properties 파일 을 작성 합 니 다. 내용 은 다음 과 같 습 니 다.
     # Set everything to be logged to the console
    log4j.rootCategory=INFO, click_all
    # Settings to quiet third party logs that are too verbose
    log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
    log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
    log4j.appender.click_all = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.click_all.File = /sparklogs/click_all.log
    log4j.appender.click_all.DatePattern = '.'yyyy-MM-dd_HH
    log4j.appender.click_all.Append = true
    log4j.appender.click_all.Threshold = INFO
    log4j.appender.click_all.layout = org.apache.log4j.PatternLayout
    log4j.appender.click_all.layout.ConversionPattern = %d{yy/MM/dd HH:mm:ss} %p %c{30}: %m%n
    log4j.additivity.com._58city = false
    log4j.logger.com._58city = INFO, click
    log4j.appender.click = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.click.File = /sparklogs/click.log
    log4j.appender.click.DatePattern = '.'yyyy-MM-dd_HH
    log4j.appender.click.Append = true
    log4j.appender.click.Threshold = INFO
    log4j.appender.click.layout = org.apache.log4j.PatternLayout
    log4j.appender.click.layout.ConversionPattern = %d{yy/MM/dd HH:mm:ss} %p %c{30}: %m%n
    3. 제출 명령 spark - submit 에 다음 매개 변 수 를 추가 합 니 다.
     --files /sparkapps/display/log4j.properties  
    시작 하면 로그 가 날짜 에 따라 잘 리 는 것 을 볼 수 있 습 니 다.
    이상 은 동료의 도움 으로 정리 한 것 입 니 다. 호 형 에 게 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기