복붙노트

[HADOOP] hadoop mapreduce 프레임 워크는 어디에서 내 System.out.print () 문을 보냅니 까? (표준 출력)

HADOOP

hadoop mapreduce 프레임 워크는 어디에서 내 System.out.print () 문을 보냅니 까? (표준 출력)

나는 mapreduce 스크립트를 디버그하고, 많은 문제를 일으키지 않고 내 프로그램에 인쇄 문구를 넣으려고했다. 그러나 어떤 로그에서도 찾을 수없는 것 같습니다.

해결법

  1. ==============================

    1.사실 stdout은 map이 아닌 reduce 클래스의 System.out.println ()만을 보여줍니다.

    사실 stdout은 map이 아닌 reduce 클래스의 System.out.println ()만을 보여줍니다.

    map 및 reduce 단계에 대한 System.out.println ()은 로그에서 볼 수 있습니다. 로그에 액세스하는 쉬운 방법은

    http : // localhost : 50030 / jobtracker.jsp-> 완료된 작업을 클릭하십시오 -> 맵을 클릭하거나 작업을 줄이기 -> 작업 번호 -> 작업 로그 -> 표준 로그를 클릭하십시오.

    희망이 도움이

  2. ==============================

    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. ==============================

    3.원사가있는 Hadoop 클러스터에서 다음을 사용하여 stdout을 포함하여 로그를 가져올 수 있습니다.

    원사가있는 Hadoop 클러스터에서 다음을 사용하여 stdout을 포함하여 로그를 가져올 수 있습니다.

    yarn logs -applicationId application_1383601692319_0008
    

    웬일인지, 나는 이것이 웹 인터페이스에서 보는 것보다 더 완벽하다는 것을 알았다. webinterface는 나를 위해 System.out.println ()의 출력을 나열하지 않았습니다.

  4. ==============================

    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);
        }
    }
    
  5. 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