[HADOOP] 하둡 작업 제출
HADOOP하둡 작업 제출
매퍼와 감속기의 작동 시간을 지속적으로 가져와야합니다. 다음과 같이 작업을 제출했습니다.
JobClient jobclient = new JobClient(conf);
RunningJob runjob = jobclient.submitJob(conf);
TaskReport [] maps = jobclient.getMapTaskReports(runjob.getID());
long mapDuration = 0;
for(TaskReport rpt: maps){
mapDuration += rpt.getFinishTime() - rpt.getStartTime();
}
그러나 프로그램을 실행할 때 작업이 제출되지 않고 매퍼가 시작되지 않는 것 같습니다. JobClient.runJob (conf)를 어떻게 사용하고 여전히 실행 시간을 얻을 수 있습니까?
해결법
-
==============================
1.submitJob () 메소드는 hadoop 작업이 시작될 때까지 기다리지 않고 호출 프로그램에 즉시 제어를 리턴합니다. 대기하려면 hadoop 작업이 완료된 후에 만 리턴되는 waitForCompletion () 메소드를 사용하십시오. 제출 후 완료 전에 후속 코드를 실행하고 싶기 때문에 중간에 무언가를 원한다고 생각합니다.
submitJob () 메소드는 hadoop 작업이 시작될 때까지 기다리지 않고 호출 프로그램에 즉시 제어를 리턴합니다. 대기하려면 hadoop 작업이 완료된 후에 만 리턴되는 waitForCompletion () 메소드를 사용하십시오. 제출 후 완료 전에 후속 코드를 실행하고 싶기 때문에 중간에 무언가를 원한다고 생각합니다.
후속 코드를 루프에 넣어 작업이 완료 될 때까지 계속하고 (해당 테스트에 isComplete () 메서드 사용) 작업이 진행됨에 따라 매퍼와 감속기를 관찰하십시오. 아마도 루프에 Thread.sleep (xxx)를 넣고 싶을 것입니다.
귀하의 의견에 답변하기 위해
job.waitForCompletion(); TaskCompletionEvent event[] = job.getTaskCompletionEvents(); for (int i = 0; i < event.length(); i++) { System.out.println("Task "+i+" took "+event[i].getTaskRunTime()+" ms"); }
from https://stackoverflow.com/questions/16778939/submitting-a-hadoop-job by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브 테이블을 생성하는 동안 <EOF> 오류를 예상하는 일치하지 않는 입력 'ROW' (0) | 2019.09.09 |
---|---|
[HADOOP] 하둡-출력 키 / 값 구분 기호 (0) | 2019.09.09 |
[HADOOP] ResourceManager 및 NodeManager를 시작하는 Hadoop 오류 (0) | 2019.09.09 |
[HADOOP] "bin / mkdistro.sh -DskipTests"를 실행하는 중 Oozie 오류 (0) | 2019.09.09 |
[HADOOP] 인덱스 7에서 잘못된 문자에 대한 Hadoop, Java 예외 설치? (0) | 2019.09.09 |