Hi I am trying out a simple example in which you have two maps and one reduce, Map1 and Map2 and Reduce1
now i wanna execute my job in the following fashion Map1 -> Map2 -> Reduce1 (o/p of map1 goes into map2 and o/p of map2 goes into reduce1) i have declared my conf as follows: JobConf conf1 = new JobConf(ChainingJobsMain.class); conf1.setJobName("Job1"); JobConf mapper1Conf = new JobConf(); JobConf mapper2Conf = new JobConf(); JobConf reducerConf = new JobConf(); ChainMapper chainMapper = new ChainMapper(); ChainReducer chainReducer = new ChainReducer(); chainMapper.addMapper(conf1, Map1.class, LongWritable.class, Text.class, Text.class, Text.class, false, mapper1Conf); chainMapper.addMapper(conf1, Map2.class, Text.class, Text.class, Text.class, Text.class, false, mapper2Conf); chainReducer.setReducer(conf1, Reduce1.class, LongWritable.class, Text.class, Text.class, Text.class, false, reducerConf); //Input and output format conf1.setInputFormat(TextInputFormat.class); conf1.setOutputFormat(NullOutputFormat.class); FileInputFormat.setInputPaths(conf1, "/user/root/input"); try { JobClient.runJob(conf1); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } but i get an output of a single map reduce. (i.e. map1 and reduce1.... i dont see any map2 code executing). Has anyone tried this out? and am i going wrong anywhere?? or does anyone have a simple example which runs chainmapper??? Regards, Raakhi