2

Hadoop 1.0.4の「新しい」API(パッケージorg.apache.hadoop.mapreduceのクラス)を使用していました。mapper / reducerをチェーンしたいと思ったとき、ChainMapper、ChainReducerが「古い」API(パッケージorg.apache.hadoop.mapredのクラス)用に作成されていることがわかりました。私は何をすべきか?

4

2 に答える 2

5

私も同じものを探していました。私は答えを得ました、そしてそれが遅くても私はこれを共有することが誰かを助けるかもしれないと思いました。

Hadoop 2.0以降では、ChainMapperとChainReducerがパッケージorg.apache.hadoop.mapreduce.lib.chainに含まれています。

ChainMapperの使用パターン:
...
Job job = new Job(conf, "MyJob");

Configuration map1Conf = new Configuration(false); 
... ChainMapper.addMapper(job, AMap.class, LongWritable.class, Text.class, Text.class, Text.class, true, map1Conf);

Configuration map2Conf = new Configuration(false); 
... ChainMapper.addMapper(job, BMap.class, Text.class, Text.class, LongWritable.class, Text.class, false, map2Conf);

Configuration map3Conf = new Configuration(false); 
... ChainReducer.setReducer(job, CReducer.class, Text.class, Text.class, LongWritable.class, Text.class, false, map3Conf);
...

job.waitForComplettion(true);
... 
于 2013-04-23T10:21:38.413 に答える
0

この投稿を読んでください。これは、ChainMapper / ChainReducerを使用する代わりに、2つのJobConfを使用してMapReduceジョブのチェーンを有効にする方法を示しています。

于 2012-11-22T02:56:16.390 に答える