복붙노트

[HADOOP] 매퍼 (또는 감속기) 내부에서 MR 작업을 중단하는 방법

HADOOP

매퍼 (또는 감속기) 내부에서 MR 작업을 중단하는 방법

맵 메서드에 IOException을 던지려고했지만 MR 작업이 중지되지 않았습니다. IOException이 Throw 된 후 작업이 중지됩니다. 예외를 던지거나 단순한 호출만으로 전체 작업을 중단 할 수있는 방법이 있습니까? 감사.

해결법

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

    1.이것은 Hadoop을위한 이상적인 사용 사례는 아니지만 좋은 연습은 아니지만 코드 내에서 작업을 바로 종료 할 수 있습니다. 그래서 당신이 당신의 일을 멈추고 자하는 상황에 이르게 될 때마다, 필요한 일을 기록하고 당신을 죽일 수 있습니다.

    이것은 Hadoop을위한 이상적인 사용 사례는 아니지만 좋은 연습은 아니지만 코드 내에서 작업을 바로 종료 할 수 있습니다. 그래서 당신이 당신의 일을 멈추고 자하는 상황에 이르게 될 때마다, 필요한 일을 기록하고 당신을 죽일 수 있습니다.

    이전 Maple API를 사용하거나 Job.killJob ()을 사용하여 RunningJob.killjob ()을 수행 할 수 있습니다. configure () 또는 setup ()에서 jobID에 대한 RunningJob 또는 Job 객체에 대한 참조를 가져와야합니다. 필요한 경우 kill 작업을 호출하면 새 API에 대한 의사 코드는 다음과 같이 표시됩니다.

    Class Map extends mapper<K1,V1,K2,V2>{
    Job myJob;
    @Override
    setup(){
    // Get the JObID
    // Get the Job object
    }
    
    map(){
    ...
    if(condition-to-stop){
    myJob.killJob();
    ...
    }
    }
    }
    
  2. ==============================

    2.매퍼의 설정 및 실행 기능을 재정 의하여 간단히 getJobID 메소드를 건너 뛸 수 있습니다.

    매퍼의 설정 및 실행 기능을 재정 의하여 간단히 getJobID 메소드를 건너 뛸 수 있습니다.

        public static class LineMapper extends Mapper<Object, Text, Text, Text>{
            boolean myCondition;
    
            @Override
            public void setup(Context context){
                myCondition = true;
            }
    
            public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
            //something happens in your code and you change the condition to false to stop the mapper
                myCondition = false;
            }
    
            @Override
            public void run(Context context) throws IOException, InterruptedException {
    
                setup(context);
                while (context.nextKeyValue()) {
                    if(linecounter < 50) { 
                        map(context.getCurrentKey(), context.getCurrentValue(), context);
                    } else {
                        cleanup(context);
                        break;
                    }
                }
            }
        }
    
  3. from https://stackoverflow.com/questions/18998470/how-to-abort-a-mr-job-inside-a-mapper-or-a-reducer by cc-by-sa and MIT license