[HADOOP] hadoop mapreduce 프레임 워크는 어디에서 내 System.out.print () 문을 보냅니 까? (표준 출력)
HADOOPhadoop mapreduce 프레임 워크는 어디에서 내 System.out.print () 문을 보냅니 까? (표준 출력)
나는 mapreduce 스크립트를 디버그하고, 많은 문제를 일으키지 않고 내 프로그램에 인쇄 문구를 넣으려고했다. 그러나 어떤 로그에서도 찾을 수없는 것 같습니다.
해결법
-
==============================
1.사실 stdout은 map이 아닌 reduce 클래스의 System.out.println ()만을 보여줍니다.
사실 stdout은 map이 아닌 reduce 클래스의 System.out.println ()만을 보여줍니다.
map 및 reduce 단계에 대한 System.out.println ()은 로그에서 볼 수 있습니다. 로그에 액세스하는 쉬운 방법은
http : // localhost : 50030 / jobtracker.jsp-> 완료된 작업을 클릭하십시오 -> 맵을 클릭하거나 작업을 줄이기 -> 작업 번호 -> 작업 로그 -> 표준 로그를 클릭하십시오.
희망이 도움이
-
==============================
2.또 다른 방법은 터미널을 통과하는 것입니다.
또 다른 방법은 터미널을 통과하는 것입니다.
1) Hadoop_Installtion 디렉토리로 이동 한 다음 "logs / userlogs"로 이동하십시오. 2) job_id 디렉토리를여십시오. 3) 맵퍼 출력을 원할 경우 _m_ 또는 감속기를 찾는 경우 _r_로 디렉토리를 점검하십시오.
예 : Hadoop-20.2.0 :
> ls ~/hadoop-0.20.2/logs/userlogs/attempt_201209031127_0002_m_000000_0/ log.index stderr stdout syslog
위의 의미 : Hadoop_Installation : ~ / hadoop-0.20.2 job_id : job_201209031127_0002 _m_ :지도 작업, "지도 번호": _000000_
4) "system.err.append"를 사용했다면 "system.out.println"또는 표준 오류를 사용하면 stdout을 엽니 다.
추신. 다른 hadoop 버전은 시야가 다른 계층 구조를 가질 수 있지만 모두 $ Hadoop_Installtion / logs / userlogs 아래에 있어야합니다.
-
==============================
3.원사가있는 Hadoop 클러스터에서 다음을 사용하여 stdout을 포함하여 로그를 가져올 수 있습니다.
원사가있는 Hadoop 클러스터에서 다음을 사용하여 stdout을 포함하여 로그를 가져올 수 있습니다.
yarn logs -applicationId application_1383601692319_0008
웬일인지, 나는 이것이 웹 인터페이스에서 보는 것보다 더 완벽하다는 것을 알았다. webinterface는 나를 위해 System.out.println ()의 출력을 나열하지 않았습니다.
-
==============================
4.stdout을 얻고 콘솔에 로그 메시지를 보내려면 apache commons 로깅 프레임 워크를 매퍼 (mapper)와 감속기 (reducer)에 사용할 수 있습니다.
stdout을 얻고 콘솔에 로그 메시지를 보내려면 apache commons 로깅 프레임 워크를 매퍼 (mapper)와 감속기 (reducer)에 사용할 수 있습니다.
public class MyMapper extends Mapper<..,...,..,...> { public static final Log log = LogFactory.getLog(MyMapper.class) public void map() throws Exception{ // Log to stdout file System.out.println("Map key "+ key); //log to the syslog file log.info("Map key "+ key); if(log.isDebugEanbled()){ log.debug("Map key "+ key); } context.write(key,value); } }
from https://stackoverflow.com/questions/3207238/where-does-hadoop-mapreduce-framework-send-my-system-out-print-statements-s by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] dfs 파일의 블록 크기 변경 (0) | 2019.05.31 |
---|---|
[HADOOP] HDFS의 기본 네임 노드 포트는 50070입니다. 그러나 나는 8020 또는 9000 어떤 장소를 보았습니다. (0) | 2019.05.31 |
[HADOOP] NullPointerException으로 spark-shell이 실패하는 이유는 무엇입니까? (0) | 2019.05.31 |
[HADOOP] 하이브 설치 문제 : 하이브 메타 스토어 데이터베이스가 초기화되지 않았습니다. (0) | 2019.05.31 |
[HADOOP] OSX의 Hadoop "SCDynamicStore에서 영역 정보를로드 할 수 없습니다" (0) | 2019.05.30 |