[spark] log4j 설정을 이용하여 스파크 쓰리프트 서버의 로그를 파일로 출력하는 방법

2024. 9. 30. 18:36·빅데이터

log4j 설정을 외부에서 주입하는 방법을 정리합니다.

문제

spark 스리프트 서버를 실행할 때는 로그를 파일로 저장하고, spark beeline 을 실행할 때는 콘솔로 출력해야 했습니다. 같은 로그 설정 파일을 이용하기 때문에 하나의 파일로 두 가지 설정을 출력해야 했습니다.

해결 방법

log4j 에 기본 설정을 두고, 외부에서 설정이 주입되면 외부 설정을 이용할 수 있게 하였습니다.

다음과 같이 설정하여 외부에서 정보가 입력되지 않으면, 설정에 저장된 spark.root.logger 설정을 이용하고, 외부에서 입력되면 외부의 설정이 기본값을 덮어 써서 외부의 값을 이용하게 됩니다.

# log4j 설정 
spark.root.logger=INFO,console
spark.log.dir=.
spark.log.file=spark.log

# 루트 로거 
log4j.rootCategory=${spark.root.logger}

#
# 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

#  
# DRFA  
#  
log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.DRFA.File=${spark.log.dir}/${spark.log.file}  
log4j.appender.DRFA.DatePattern=.yyyy-MM-dd  
log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout  
log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c (%t): %m%n

스리프트 서버를 실행 할 때는 외부에서 설정을 주입하여 줍니다.

/usr/lib/jdk/bin/java \
-cp /opt/spark/conf/:/opt/spark/jars/*
-Xmx2g \
-Dspark.root.logger=INFO,DRFA \
-Dspark.log.dir=/var/log/spark \
-Dspark.log.file=spark-ubuntu-thriftserver.log \
org.apache.spark.deploy.SparkSubmit \
--class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 \
--name "Thrift JDBC/ODBC Server" spark-internal
반응형
저작자표시 비영리 동일조건 (새창열림)

'빅데이터' 카테고리의 다른 글

[k8s] 인그레스의 공인인증서 교체 방법  (0) 2025.02.16
[ranger] 레인저 HDFS plugin 에서 User does not have permission for this operation 오류  (2) 2024.10.10
[airflow] 에어플로우에서 생성하는 로그의 umask 설정  (0) 2024.06.15
[ranger] apache ranger 빌드 방법 정리  (0) 2024.06.15
[Iceberg] 아파치 Iceberg 사용 방법.  (0) 2024.04.14
'빅데이터' 카테고리의 다른 글
  • [k8s] 인그레스의 공인인증서 교체 방법
  • [ranger] 레인저 HDFS plugin 에서 User does not have permission for this operation 오류
  • [airflow] 에어플로우에서 생성하는 로그의 umask 설정
  • [ranger] apache ranger 빌드 방법 정리
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    하이브
    bash
    백준
    오류
    HIVE
    Python
    하둡
    emr
    error
    yarn
    정올
    k8s
    oozie
    build
    Linux
    파이썬
    SPARK
    AWS
    S3
    ubuntu
    다이나믹
    HDFS
    Tez
    mysql
    hbase
    nodejs
    알고리즘
    java
    Hadoop
    airflow
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[spark] log4j 설정을 이용하여 스파크 쓰리프트 서버의 로그를 파일로 출력하는 방법
상단으로

티스토리툴바