最近加深了下Mapreduce的分布计算框架的理解,处理一些业务逻辑时,发现需要多个mapreduce程序才能完成。为了降低代码执行的繁琐度,将多个main文件合成一个,研究了下多任务的串联执行。下面就开始说说我的认识吧!
业务逻辑是比较普遍的求共同好友的测试。一般而言,根据业务逻辑,需要编写两个mapreduce程序,分别放在两个java文件中,先后执行才能获取最终的结果。下面是我将两个mapreduce程序放到一个java文件中,然后对main类的改造。
首先分别创建两个controlledJob对象,处理两个mapreduce程序。
ControlledJob controlledJob1 = new ControlledJob(job1.getConfiguration());
ControlledJob controlledJob2 = new ControlledJob(job2.getConfiguration());
创建一个管理组cf,用于管理创建的controlledJob对象,自定义组名,然后用addJob方法添加进组。
JobControl jc = new JobControl("cf");