关于版本
由于flume1.9以下不支持hbase2.0以上,所以必须用1.9的版本;
- flume1.9
- hbase2.0.0
实现方式
实现HBase2EventSerializer接口,注意是2;
注:0.96及以上版本的HBase不能用实现AsyncHbaseEventSerializer 接口的方式
新建一个工程,引入flume-ng-hbase2-sink的坐标,无需修改源码
pom文件
添加以下依赖,推荐使用阿里云仓库
<dependency>
<groupId>org.apache.flume.flume-ng-sinks</groupId>
<artifactId>flume-ng-hbase2-sink</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>2.0.0</version>
</dependency>
代码
import com.google.common.base.Charsets;
import com.google.gson.Gson;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.apache.flume.Context;
import org.apache.flume.Event;
import org.apache.flume.FlumeException;
import org.apache.flume.conf.ComponentConfiguration;
import org.apache.flume.sink.hbase2.HBase2EventSerializer;
import org.apache.hadoop.hbase.client.Increment;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Row;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
<