맵 메서드에서 IOException을 발생 시키려고했지만 MR 작업이 중지되지 않았습니다. IOException이 Throw 된 후 작업이 중지됩니다. 그냥 예외 나 간단한 호출을하여 전체 작업을 중단 할 수있는 방법이 있습니까? 감사합니다. .매퍼 (또는 감속기) 내에서 MR 작업을 중단하는 방법
3
A
답변
2
이것은 Hadoop을위한 이상적인 사용 사례는 아니지만 좋은 연습은 아니지만 코드 내부에서 작업을 바로 종료 할 수 있습니다. 그래서 직장을 그만두기를 원하는 조건에 도달 할 때마다 필요한 일을 기록하고 직장을 그만 두십시오.
이전 mapred
API를 사용하거나 Job.killJob()
을 사용하여 RunningJob.killjob()을 수행 할 수 있습니다. configure()
또는 setup()
에있는 작업 ID에 대해 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();
...
}
}
}
0
당신은 간단하게 설치하고 매퍼의 실행 기능을 재정 의하여 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;
}
}
}
}
관련 문제
- 1. 기본 매퍼 - 감속기 클래스
- 2. 하둡의 매퍼 및 감속기
- 3. 하둡 매퍼/감속기 재사용
- 4. 하나의 파일 또는 디렉토리를 처리하는 하나의 매퍼 또는 감속기
- 5. java.util.concurrent.Executor 작업을 중단하는 방법
- 6. mapreduce : 매퍼/감속기 내부에서 객체를 생성하지 않아야합니까?
- 7. Hadoop cdh4 : 매퍼 완료 전 감속기 완료
- 8. 커널 모듈에서 작업을 일시 중단하는 방법 (Linux)?
- 9. 이 명령 줄 작업을 중단하는 방법?
- 10. 작업 내에서 Capistrano 배치를 중단하는 방법
- 11. Hadoop의 매퍼/감속기 기능으로 OpenMP C++ 프로그램을 사용할 수 있습니까?
- 12. 스트리밍 작업에서 여러 개의 매퍼 및 감속기 파일
- 13. Heroku에 배포 할 때 셀러리 작업을 중단하는 방법
- 14. AWS EMR 5.0에서 실행중인 boto3의 MR 작업에 스트리밍 단계 추가
- 15. Git Bisect를 중단하는 방법
- 16. 하둡 매퍼 컨텍스트 개체
- 17. 드래그 작업을 중단하는 NSView 하위 뷰
- 18. 감속기 작동 방법?
- 19. 하둡지도 축소, 첫 번째 감속기 출력과 첫 번째지도 입력을 두 번째 매퍼 입력으로 결합하는 방법?
- 20. 하둡 : 다른 감속기
- 21. MySql 트리거에서 INSERT 작업을 중단하는 방법은 무엇입니까?
- 22. iPhone에서 비동기 작업을 일시 중단하는 방법은 무엇입니까?
- 23. 폭주하는 프로세스를 중단하는 방법
- 24. 시작시 프로세스를 중단하는 방법
- 25. 하둡 매퍼 : 클래스 또는 인터페이스
- 26. 하둡지도 축소 - 감속기 수
- 27. Poco : 다른 스레드에서 블로킹 소켓 작업을 중단하는 방법
- 28. 트리거 된 빌드가 실패 할 경우 Jenkins 작업을 중단하는 방법
- 29. Mapreduce, MR-IncrementalTask, ApiProxy $ RequestTooLargeException
- 30. HADOOP - 매퍼 내에서 노드 이름 얻기
새 API에서 어떻게 org.apache.hadoop.mapreduce.Job의 인스턴스를 org.apache.hadoop.mapreduce.JobID에서 가져 옵니까? –