多个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被调用,参看上面的依赖的顺序!!!

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值