[HADOOP] hadoop에서 로깅 기능 제어
HADOOPhadoop에서 로깅 기능 제어
hadoop에서 로깅 기능을 제어하는 방법은 무엇입니까? Hadoop은 로그를 제어하기 위해 기본 log4j.properties 파일을 사용합니다. 내 유스 케이스는 내 클래스에서 생성 된 로그를 제어하는 것이다.
JobTracker, TaskTracker, NameNode 및 DataNode 데몬 프로세스와 같은 Hadoop 데몬은 각 호스트 노드의 hadoop-conf-directory에서 log4j.properties 파일을 사용합니다. rootLogger는 INFO 레벨의 모든 메시지를 콘솔에 기록하는 "INFO, console"로 설정됩니다.
Oozie Workflow를 사용하여 작업을 시작합니다. -Dlog4j.configuration = path / to / log4j.properties 시스템 특성을 설정하여 작업에 사용자 정의 log4j.properties 파일을 전달하려고 시도했지만 작동하지 않습니다. 여전히 기본 log4j 속성을 사용합니다.
나는 기본 log4j.properties 파일을 만지기로되어 있지 않다.
나는 Oozie-v3.1.3-incubating, hadoop-v0.20 및 cloudera CDH-v4.0.1을 사용하고 있습니다.
어떻게 기본 log4j.properties 파일을 대체 할 수 있습니까 ?? 또는 내 수업에 대한 로그를 어떻게 제어 할 수 있습니까?
해결법
-
==============================
1.특별히 Log4J 파일로 달성하고자하는 것은 무엇입니까? 로그가 클러스터를 통해 분산되기 때문에 rootlogger에 로그를 남기므로 작업 추적기를 통해 로그를 볼 수 있어야합니다 (작업 작업 시도를 드릴 다운하여).
특별히 Log4J 파일로 달성하고자하는 것은 무엇입니까? 로그가 클러스터를 통해 분산되기 때문에 rootlogger에 로그를 남기므로 작업 추적기를 통해 로그를 볼 수 있어야합니다 (작업 작업 시도를 드릴 다운하여).
롤링 파일을 사용하려는 경우 나중에 해당 파일을 검색하는 데 어려움을 겪습니다 (작업 노드를 통해 분산되기 때문에).
동적으로 로그 수준을 설정하려면이 작업이 충분히 간단해야합니다.
public static Logger log = Logger.getLogger(MyMapper.class); @Override protected void setup(Context context) throws IOException, InterruptedException { log.setLevel(Level.WARN); }
자신의 appender를 추가하고 싶다면 위와 같이 setup 메소드를 사용하여 프로그래밍 방식으로이 작업을 수행 할 수 있습니다 (이 SO 질문 참조).
from https://stackoverflow.com/questions/14191070/controlling-logging-functionality-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Mahout : 사용자 정의 입력 파일을 읽으려면 (0) | 2019.06.20 |
---|---|
[HADOOP] Hbase-site.xml을 클래스 패스에 포함시키는 방법 (0) | 2019.06.20 |
[HADOOP] 드라이버에서 MapReduce로 객체 전달하기 (0) | 2019.06.20 |
[HADOOP] YARN 응용 프로그램 마스터가 리소스 관리자에 연결할 수 없습니다. (0) | 2019.06.20 |
[HADOOP] HBase가 얼마나 많은 regions 서버를 분할합니까? (0) | 2019.06.20 |