Hadoopパイプを使用しています。削減機能でアクセスできるはずのマップのカウンターを使いたい。
出来ますか?
質問する
391 次
1 に答える
0
いいえ、不可能な同じ仕事の中で。ただし、レデューサーなしで1つのジョブを実行し、計算するカウンター情報を収集してから、2番目のジョブを開始し、それらのカウント値をジョブ構成オブジェクトに追加すると、2番目のジョブのレデューサーがそれらの値にアクセスできます。 。
編集:
コード例は次のとおりです。
enum COUNTERS {C1; C2;}
class DriverCode
{
Configuration conf = new Configuration();
//the Mapper increases C1
Job job1 = new Job(conf, "Job1");
job1.setJarByClass(MyJar.class);
job1.setMapperClass(MyMapper1.class);
...
//read out C1
long c1 = job.getCounters().findCounter(COUNTERS.C1).getValue();
//set it for the new job
conf.setLong("c1",c1);
Job job2 = new Job(conf, "Job2");
//and now you can access this configuration object in your second job
job2.setJarByClass(MyJar.class);
job2.setMapperClass(MyMapper2.class);
...
}
于 2012-12-04T17:22:49.893 に答える