여러 MapReduce 작업 이 서로 의존 할 때 JobControl 을 사용 하여 관리 합 니 다.

복잡 한 관 계 를 가 진 데 이 터 를 처리 하려 면 한 공사 에서 MapReduce 작업 만 있 는 것 이 아니 라 여러 개의 MapReduce 작업 이 있 을 때      그리고 모든 작업 간 에 의존 관계 가 있 습 니 다.의존 이란 하나의 작업 이 얻 은 결 과 는 다른 작업 의 입력 입 니 다.이때 우 리 는 할 수 있 습 니 다.    JobControl 을 사용 하여 그 중의 addDepending()방법 을 사용 하여 모든 MapReduce 작업 간 의 의존 관 계 를 관리 하고 구체 적 으로    예 는 다음 과 같다.
   
    step1:
//    Configuration
Configuration Aconf = new Configuration();
Configuration Bconf = new Configuration();
Configuration Cconf = new Configuration();
Configuration Dconf = new Configuration();

 
    step2:
//  job  ,      JobControl         job  
Job Ajob = new Job(Aconf);
Job Bjob = new Job(Bconf);
Job Cjob = new Job(Cconf);
Job Djob = new Job(Dconf);

 
    step3:
//      ,    DAG  
Bjob.addDepending(Ajob);
Cjob.addDepending(Ajob);
Djob.addDepending(Bjob);
Djob.addDepending(Cjob);

 
    step4:
//  JobControl  ,            
JobControl JC = new JobControl("Native Bayes");

 
    step5:
//        JobControl 
JC.addJob(Ajob);
JC.addJob(Bjob);
JC.addJob(Cjob);
JC.addJob(Djob);

 
    step6:
//  DAG  
JC.run();

 
 
     실제 실행 과정 에서 다른 작업 에 의존 하지 않 는 Ajob 는 우선 스케줄 링 을 받 습 니 다.실행 이 완료 되면 Bjob,Cjob 두 작업 이 같 습 니 다.       스케줄 링 되 었 습 니 다.그들 이 모두 실행 한 후에 Djob 가 호출 되 었 습 니 다.위의 의존 순 서 를 참조 하 십시오!!

좋은 웹페이지 즐겨찾기