Hadoop Map-Reduce を使用して以下の機能を実装する必要がありますか?
1) あるソースからのマッパーの 1 つの入力と、別の異なる入力ソースからの別の入力を読み取っています。
2)さらに処理するために、マッパーの両方の出力を単一のレデューサーに渡す必要があります。
Hadoop Map-Reduce で上記の要件を満たすことはありますか
MultipleInputs.addInputPath
あなたが探しているものです。これは、構成がどのように見えるかです。AnyMapper1 と AnyMapper2 の両方が、MergeReducer が期待する同じ出力を書き込むようにしてください。
JobConf conf = new JobConf(Merge.class);
conf.setJobName("merge");
conf.setOutputKeyClass(IntWritable.class);
conf.setOutputValueClass(Text.class);
conf.setReducerClass(MergeReducer.class);
conf.setOutputFormat(TextOutputFormat.class);
MultipleInputs.addInputPath(conf, inputDir1, SequenceFileInputFormat.class, AnyMapper1.class);
MultipleInputs.addInputPath(conf, inputDir2, TextInputFormat.class, AnyMapper2.class);
FileOutputFormat.setOutputPath(conf, outputPath);
カスタム書き込み可能を作成できます。同じものを Mapper に入力できます。その後、Reducer で書き込み可能なカスタム オブジェクトを取得し、必要なビジネス オペレーションを実行できます。