[HADOOP] Hadoop MapReduce log4j - userlogs / job_ dir의 사용자 정의 파일에 메시지를 기록 하시겠습니까?
HADOOPHadoop MapReduce log4j - userlogs / job_ dir의 사용자 정의 파일에 메시지를 기록 하시겠습니까?
작업 레벨에서 Hadoop MapReduce log4j를 어떻게 구성해야하는지 명확하지 않습니다. 누군가가 내가이 질문에 대답하도록 도울 수 있습니까?
1) 클라이언트 시스템에서 log4j 로깅 지원을 추가하는 방법. 즉 클라이언트 컴퓨터에서 log4j 등록 정보 파일을 사용하려고하므로 클러스터의 Hadoop log4j 설정을 방해하고 싶지 않습니다. 나는 프로젝트 / jar에 속성 파일을 가지고 있으면 충분하다고 생각할 것이며, hadoop의 분산 캐시는 나머지를 map-reduce jar 파일로 옮겨야한다.
2) $ HADOOP_HOME / logs / userlogs / job_ / dir에있는 사용자 정의 파일에 메시지를 기록하는 방법.
3)지도 작업 줄이기 둘 다 log4j 속성 파일을 사용합니까? 클라이언트 작업에서 제공 한 것이고 hadoop 클러스터에있는 것이 있습니까? 그렇다면 log4j.rootLogger는 두 속성 값을 모두 추가합니까?
Tenks Srivatsan은 좋다
해결법
-
==============================
1.코드에서 log4j를 직접 구성 할 수 있습니다. 예를 들어 PropertyConfigurator.configure (속성)를 호출 할 수 있습니다. 예 : 매퍼 / 감속기 설정 방법.
코드에서 log4j를 직접 구성 할 수 있습니다. 예를 들어 PropertyConfigurator.configure (속성)를 호출 할 수 있습니다. 예 : 매퍼 / 감속기 설정 방법.
다음은 hdfs에 저장된 등록 정보의 예입니다.
InputStream is = fs.open(log4jPropertiesPath); Properties properties = new Properties(); properties.load(is); PropertyConfigurator.configure(properties);
여기서 fs는 FileSystem 객체이고 log4jPropertiesPath는 hdfs의 경로입니다.
이것으로 job_id로 dir에 로그를 출력 할 수도 있습니다. 예를 들어 PropertyConfigurator.configure (속성)를 호출하기 전에 속성을 수정할 수 있습니다.
Enumeration propertiesNames = properties.propertyNames(); while (propertiesNames.hasMoreElements()) { String propertyKey = (String) propertiesNames.nextElement(); String propertyValue = properties.getProperty(propertyKey); if (propertyValue.indexOf(JOB_ID_PATTERN) != -1) { properties.setProperty(propertyKey, propertyValue.replace(JOB_ID_PATTERN, context.getJobID().toString())); } }
-
==============================
2.원사 로그 --applicationId
를 사용하여 전체 로그를 가져온 다음 unix 명령을 사용하여 필요한 로그 부분을 구문 분석하고 추출하십시오. 원사 로그 --applicationId
를 사용하여 전체 로그를 가져온 다음 unix 명령을 사용하여 필요한 로그 부분을 구문 분석하고 추출하십시오.
from https://stackoverflow.com/questions/22860045/hadoop-mapreduce-log4j-log-messages-to-a-custom-file-in-userlogs-job-dir by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브 : 기존 하이브 데이터베이스의 이름을 바꿀 수 있습니까? (0) | 2019.08.04 |
---|---|
[HADOOP] Spark fillNa가 null 값을 대체하지 않습니다. (0) | 2019.08.04 |
[HADOOP] classpath를 설정 한 후에 org.apache.hadoop.conf 패키지가 존재하지 않습니다. (0) | 2019.08.04 |
[HADOOP] HBase를 MapReduce의 소스로 사용할 때 TableInputFormatBase를 확장하여 각 영역에 대해 여러 개의 스플릿과 여러 맵퍼를 만들 수 있습니까? (0) | 2019.08.04 |
[HADOOP] hadoop 2.4.0에서 MapReduce 작업을 실행할 수 없습니다. (0) | 2019.08.04 |