[HADOOP] 매퍼 (또는 감속기) 내부에서 MR 작업을 중단하는 방법
HADOOP매퍼 (또는 감속기) 내부에서 MR 작업을 중단하는 방법
맵 메서드에 IOException을 던지려고했지만 MR 작업이 중지되지 않았습니다. IOException이 Throw 된 후 작업이 중지됩니다. 예외를 던지거나 단순한 호출만으로 전체 작업을 중단 할 수있는 방법이 있습니까? 감사.
해결법
-
==============================
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.매퍼의 설정 및 실행 기능을 재정 의하여 간단히 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; } } } }
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
'HADOOP' 카테고리의 다른 글
[HADOOP] 스파크에서 하이브 테이블에 액세스하기 (0) | 2019.06.29 |
---|---|
[HADOOP] 둘째 날에 "너무 많은 페치 실패"가 발생하는 이유는 무엇입니까? (0) | 2019.06.29 |
[HADOOP] 매퍼 수를 제한하는 방법 (0) | 2019.06.29 |
[HADOOP] 아파치 스파크로 수백만 개의 작은 s3 파일을 처리하는 법 (0) | 2019.06.29 |
[HADOOP] hbase 스캐너에서 결과 정렬 (0) | 2019.06.29 |