multipleOutputs を使用した場合と使用しない場合で mapreduce を実行すると、コンソール ログに矛盾が見られます。
テキスト ファイルに出力するマッパーのみのジョブがあります。
MultipleOutputs が構成されていない場合、
私のマッパーのコードスニペット:
context.write(null,new Text(value));
コンソール出力の抜粋
Map-Reduce Framework
Map input records=2
Map output records=2
MultipleOutputs を使用すると、
私のマッパーのコードスニペット:
multipleOutputs.write(null,new Text(value),FileOutputFormat.getOutputPath(context).toString() + Path.SEPARATOR + "v");
コンソール出力の抜粋
Map-Reduce Framework
Map input records=2
Map output records=0
空のパーツ ファイルを回避するためのドライバー コード
LazyOutputFormat.setOutputFormatClass(job, TextOutputFormat.class);
出力レコードの数に注意してください。ただし、2 番目のケースでは 0 として表示されますが、ファイルには正しい出力が表示されます。生成されるファイル名は vm-00000 です。
何か不足していますか?