[HADOOP] hadoop을 사용하는 동안 로거 API를 사용하여 자바 로그 파일을 작성하는 방법
HADOOPhadoop을 사용하는 동안 로거 API를 사용하여 자바 로그 파일을 작성하는 방법
디버깅하려는 맵 축소 코드를 작성했습니다.
그렇게하기 위해서는 Hadoop 플랫폼이 오류가 발생하지 않는 한 화면에 출력하지 않기 때문에 표준 출력을 사용할 수 없습니다.
대신 로그 파일을 만들려면 로거를 사용하려고했습니다.
처리기를 사용하여 두 파일로 분할했습니다. 불행히도 "심한"로그 파일이 비어 있고 일반 로그 파일은 기본 스레드에서 발생하는 일만 기록하고 맵 축소 기능에서는 발생하지 않습니다.
문제는 다음과 같습니다.
hadoop 및 로그 파일에 문제가 있습니까? 아니면 로거 구성에 문제가 있습니까? 그렇다면 어떻게 수정해야하는지.
로그 구성 코드 : 전체 응용 프로그램에 대해 하나의 로거를 사용합니다 (이번에는 루트 로거입니다).
public static Logger configureLogging()
{
try
{
logger=Logger.getLogger("");
//FileSystem hdfs=FileSystem.get(URI.create(Misc.S3FS),getConfiguration());
logger.setLevel(Level.ALL);
//StreamHandler handler=new StreamHandler(hdfs.create(new Path(Misc.LOGS_PATH+"mylog.log")),new SimpleFormatter());
FileHandler handler=new FileHandler(Misc.LOGS_PATH+"mylog.xml",true);
FileHandler severeHandler=new FileHandler(Misc.LOGS_PATH+"mylogSevere.xml",true);
severeHandler.setLevel(Level.INFO);
logger.addHandler(handler);
logger.addHandler(severeHandler);
}
catch (Exception e)
{
e.printStackTrace();
}
return logger;
}
해결법
-
==============================
1.Hadoop은 사전 구성된 log4j와 함께 제공됩니다. 두 클래스를 가져 오기만하면됩니다.
Hadoop은 사전 구성된 log4j와 함께 제공됩니다. 두 클래스를 가져 오기만하면됩니다.
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
이제 매퍼, 감속기 및 원하는 위치에 로거를 정의 할 수 있습니다.
private static final Log LOG = LogFactory.getLog(MyClass.class);
그리고 필요한 것을 기록하십시오 :
LOG.info("My message");
작업 실행 중에 메시지가 나타납니다. log4j 구성을 조정할 수 있습니다.
conf/log4j.properties
from https://stackoverflow.com/questions/12446379/how-to-write-java-log-file-using-the-logger-api-while-using-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] oozie 작업에서 다중 libpath를 어떻게 지정합니까? (0) | 2019.08.06 |
---|---|
[HADOOP] textinputformat.record.delimiter를 하이브 cli / beeline 내에서 기본값으로 재설정하는 방법은 무엇입니까? (0) | 2019.08.06 |
[HADOOP] Hive ParseException- 'end' 'string'근처의 입력을 인식 할 수 없습니다 (0) | 2019.08.06 |
[HADOOP] Hadoop Nodemanager 및 Resourcemanager가 시작되지 않음 (0) | 2019.08.06 |
[HADOOP] 코끼리 - 조류 mvn 패키지 오류 (0) | 2019.08.06 |