복붙노트

[HADOOP] 시간 초과를 생성하는 대신 내 매퍼가 여전히 잘 실행중인 작업 추적기를 업데이트하는 방법은 무엇입니까?

HADOOP

시간 초과를 생성하는 대신 내 매퍼가 여전히 잘 실행중인 작업 추적기를 업데이트하는 방법은 무엇입니까?

호출 할 API / 메소드를 잊어 버렸지 만 내 문제는 다음과 같습니다.

매퍼가 10 분 이상 실행되며 기본 시간 초과를 늘리고 싶지 않습니다.

오히려 10 분 이상 시간을 소비하는 특정 코드 경로에있을 때 매퍼가 업데이트 추적을 작업 추적기에 보내도록하고 싶습니다.

어떤 API / 방법을 호출해야하는지 알려주세요.

해결법

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

    1.카운터와 통화 진행률을 높이기 만하면됩니다. 이렇게하면 작업이 하트 비트를 작업 추적기에 다시 전송하여 활성 상태인지 확인할 수 있습니다.

    카운터와 통화 진행률을 높이기 만하면됩니다. 이렇게하면 작업이 하트 비트를 작업 추적기에 다시 전송하여 활성 상태인지 확인할 수 있습니다.

    새로운 API에서 이것은 컨텍스트를 통해 관리됩니다. http://hadoop.apache.org/common/docs/r1.0.0/api/index.html

    예 :

    @Override
    protected void map(LongWritable key, Text value, Context context)
      throws IOException, InterruptedException {
        // increment counter
        context.getCounter(SOME_ENUM).increment(1);
        context.progress();
    }
    

    이전 API에는 기자 클래스가 있습니다. http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/Reporter.html

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

    2.일반적으로 Reporter를 사용하여 프레임 워크에 아직 살아 있음을 알립니다.

    일반적으로 Reporter를 사용하여 프레임 워크에 아직 살아 있음을 알립니다.

    javadoc에서 인용 :

  3. from https://stackoverflow.com/questions/11814469/how-to-update-task-tracker-that-my-mapper-is-still-running-fine-as-opposed-to-ge by cc-by-sa and MIT license