[HADOOP] Map4 및 Reducer 로그를 파일에 추가하지 않는 Log4j RollingFileAppender
HADOOPMap4 및 Reducer 로그를 파일에 추가하지 않는 Log4j RollingFileAppender
응용 프로그램 로그를 로컬 노드의 파일로 인쇄하려고합니다. 우리는 Log4j의 RollingFileAppender를 사용하고 있습니다.
log4j.properties 파일은 다음과 같습니다.
ODS.LOG.DIR=/var/log/appLogs
ODS.LOG.INFO.FILE=application.log
ODS.LOG.ERROR.FILE=application_error.log
# Root logger option
log4j.rootLogger=ERROR, console
log4j.logger.com.ournamespace=ERROR, APP_APPENDER, ERROR_APPENDER
#
# console
# Add "console" to rootlogger above if you want to use this
#
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}-%r %p %c{5}: %m%n
# Direct log messages to a log file
log4j.appender.APP_APPENDER=org.apache.log4j.RollingFileAppender
log4j.appender.APP_APPENDER.File=${ODS.LOG.DIR}/${ODS.LOG.INFO.FILE}
log4j.appender.APP_APPENDER.MaxFileSize=200MB
log4j.appender.APP_APPENDER.MaxBackupIndex=30
log4j.appender.APP_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.APP_APPENDER.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}-%r %p %c{10}: %m%n
log4j.appender.ERROR_APPENDER=org.apache.log4j.RollingFileAppender
log4j.appender.ERROR_APPENDER.Threshold=ERROR
log4j.appender.ERROR_APPENDER.File=${ODS.LOG.DIR}/${ODS.LOG.ERROR.FILE}
log4j.appender.ERROR_APPENDER.MaxFileSize=200MB
log4j.appender.ERROR_APPENDER.MaxBackupIndex=90
log4j.appender.ERROR_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR_APPENDER.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}-%r %p %c{10}: %m%n
MR 드라이버 로그는 / var / log / appLogs 디렉토리에 나타나지만 매퍼 및 리듀서 로그는이 디렉토리에 표시되지 않습니다.
Ambari (Hortonworks Data Platform)를 사용하여 log4j.properties 스 니펫을 hdfs-log4j, yarn-log4j, hbase-log4j 및 zookeeper-log4j에 복사했습니다. MR 작업은 일반적으로 HBase 입력 및 출력 형식 클래스를 사용합니다.
매퍼 및 리듀서 로그를 / var / log / appLogs 디렉토리에도 표시하려면 어떤 변경이 필요합니까?
편집 : JobHistory UI syslog에 로그가 표시되지만 로그 파일에 추가되지 않습니다. 우리는 무엇을 놓치고 있습니까?
해결법
-
==============================
1.예를 들어 log4j를 구성하기 위해 PropertyConfigurator.configure (properties)를 호출 할 수 있습니다. 예를 들어 코드에서 매퍼 / 감속기 설정 방법.
예를 들어 log4j를 구성하기 위해 PropertyConfigurator.configure (properties)를 호출 할 수 있습니다. 예를 들어 코드에서 매퍼 / 감속기 설정 방법.
다음은 hdfs에 저장된 속성이있는 예입니다.
InputStream is = fs.open(log4jPropertiesPath); Properties properties = new Properties(); properties.load(is); PropertyConfigurator.configure(properties);
여기서 fs는 FileSystem 객체이고 log4jPropertiesPath는 hdfs의 경로입니다.
from https://stackoverflow.com/questions/49797255/log4j-rollingfileappender-not-adding-mapper-and-reducer-logs-to-file by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] FileSystem.liststatus에서 로그 파일 필터링 (_success 및 _log) (0) | 2019.09.10 |
---|---|
[HADOOP] Hadoop : 키-값 쌍의 값으로 double 배열을 어떻게 가질 수 있습니까? (0) | 2019.09.10 |
[HADOOP] context.write (k, v)에서 값을 출력하는 방법 (0) | 2019.09.10 |
[HADOOP] 별개의 커플 (쌍)을 필터링하는 방법 (0) | 2019.09.10 |
[HADOOP] 하둡 버퍼링 vs 스트리밍 (0) | 2019.09.10 |