输出HBase增量MR减速器

时间:2014-02-27 19:57:23

标签: hadoop mapreduce hbase counter increment

我有一个写入HBase的mapreduce作业。我知道您可以使用Put从reducer中输出DeleteTableMapReduceUtil

是否可以发出Increment来增加HBase表中的值而不是发出PutsGets?如果是的话,怎么做,如果不是,为什么呢?

我正在使用CDH3

public static class TheReducer extends TableReducer<Text, Text, ImmutableBytesWritable>  {  
    public void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {         
        ///....DO SOME STUFF HERE
        Increment increment = new Increment(row);
        increment.addColumn(col,qual,1L);
        context.write(null, increment); //<--- I want to be able to do this                             
        }
}

谢谢

1 个答案:

答案 0 :(得分:1)

据我所知,你不能在上下文中使用Increment - 但是你总是可以打开与HBase的连接并在任何地方写入Increments(mapper,mapper cleanup,reducer等)。

请注意,增量不是幂等的,因此结果可能会对map / reduce作业的部分成功产生问题和/或如果您有M / R的推测执行(即多个映射器执行相同的工作)