【问题标题】:output HBase Increment in MR reducer在 MR reducer 中输出 HBase 增量
【发布时间】:2014-03-31 12:05:48
【问题描述】:

我有一个写入 HBase 的 mapreduce 作业。我知道你可以使用TableMapReduceUtil 从减速器输出PutDelete

是否可以发出 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                             
        }
}

谢谢

【问题讨论】:

    标签: hadoop mapreduce hbase counter increment


    【解决方案1】:

    据我所知,您不能在上下文中使用增量 - 但您始终可以打开与 HBase 的连接并在任何地方写入增量(映射器、映射器清理、reducer 等)

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

    【讨论】:

    • 也许是第二个问题,但是如何使用 java api 禁用减速器的推测执行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多