我需要从我的映射器中共享一个计数器。这可能吗?如果可以,怎么办?
public class CounterMapper extends Mapper<Text,Text,Text,Text> {
@Override
protected void map(Text key, Text value, Context context)
throws IOException, InterruptedException {
String splittedkey = //some logic ok key
if(context.getCounter("my_counters", splittedkey).getValue() == 0 )
context.getCounter("my_counters", splittedkey).increment(1);
context.write(key, value);
}
}
在我的驱动程序中,我有一个用startRow
和StopRow
进行简化的映射的列表,有时此扫描的结果是相同的,因此我需要跳转到map函数内,
但是my_counters
的值始终为零。
有什么建议吗?