복붙노트

[HADOOP] HBase를 맵리 듀스는 : 감속기에서 HBase를로 쓰기

HADOOP

HBase를 맵리 듀스는 : 감속기에서 HBase를로 쓰기

나는 HBase를 배우고있다. 나는 하둡 맵리 듀스를 사용하여 Java 프로그램을 작성하고 HDFS에 출력을 작성하는 방법을 알고 하지만 지금은 내가 대신 HDFS의, HBase를에 동일한 출력을 쓰고 싶어요. 내가 HDFS 일에 전에했던 것처럼 그것은 몇 가지 유사한 코드가 있어야합니다

context.write(key,value);

사람이 나에게 이것을 달성하기 위해 예를 보여줄 수 있을까?

해결법

  1. ==============================

    1.다음은이 작업을 수행하는 하나 개의 방법이있다 :

    다음은이 작업을 수행하는 하나 개의 방법이있다 :

    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;
       }
    }
    

    여기 표 매퍼에 대한 읽을 수 있습니다

  2. ==============================

    2.대신 작업을 설정 FileOutputFormat를 사용하여, 당신은 TableOutputFormat을 사용할 수 있어야합니다.

    대신 작업을 설정 FileOutputFormat를 사용하여, 당신은 TableOutputFormat을 사용할 수 있어야합니다.

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

    당신은 여전히 ​​당신의 감속기을 약간 수정해야합니다.

    위의 페이지에서 인용 :

  3. from https://stackoverflow.com/questions/18603031/hbase-mapreduce-write-into-hbase-in-reducer by cc-by-sa and MIT license