簡體   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