mr reducer中的输出hbase增量

oipij1gg  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(422)

我有一个mapreduce的工作,可以写hbase。我知道你可以输出 Put 以及 Delete 使用 TableMapReduceUtil .
有可能吗 Increment 在hbase表中增加值而不是输出 Puts 以及 Gets ? 如果是,怎么做?如果不是,为什么?
我用的是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                             
        }
}

谢谢

rqcrx0a6

rqcrx0a61#

据我所知,您不能在上下文中使用增量—但您可以随时打开到hbase的连接,并在任何位置(Map器、Map器清理、还原器等)写入增量
请注意,增量不是幂等的,因此在map/reduce作业部分成功时和/或在m/r上有推测性执行时,结果可能会有问题(即,多个Map器执行相同的工作)

相关问题