繁体   English   中英

HBase mapreduce:在Reducer中写入HBase

[英]HBase mapreduce: write into HBase in Reducer

我正在学习HBase。 我知道如何使用Hadoop MapReduce编写Java程序并将输出写入HDFS。 但是现在我想将相同的输出而不是HDFS写入HBase。 它应该具有一些类似的代码,就像我之前在HDFS中所做的那样:

context.write(key,value);

谁能给我一个例子来实现这一目标?

这是执行此操作的一种方法:

public static class MyMapper extends TableMapper<ImmutableBytesWritable, Put>  {

public void map(ImmutableBytesWritable row, Result value, Context context) throws IOException, InterruptedException {
    // this example is just copying the data from the source table...
    context.write(row, resultToPut(row,value));
}

private static Put resultToPut(ImmutableBytesWritable key, Result result) throws IOException {
    Put put = new Put(key.get());
    for (KeyValue kv : result.raw()) {
        put.add(kv);
     }
    return put;
   }
}

您可以在这里阅读有关Table Mapper的信息

设置作业时,不要使用FileOutputFormat,而应该可以使用TableOutputFormat。

http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html

您仍然需要对Reducer进行一些修改。

上一页的引言:

转换Map / Reduce输出并将其写入HBase表。 当输出值必须是Put或Delete实例时,将忽略KEY。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM