微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flink学习笔记——读写Hbase

1.如果是csa(Cloudera Streaming Analytics)版本的Hbase,可以参考Cloudera官方例子,通过引入flink-hbase来实现

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-hbase_2.11</artifactId>
    <version>1.9.0-csa1.0.0.0</version>
</dependency>

要求flink最低版本1.9.0,hbase最低版本2.1.0-cdh6.3.0,然后就可以使用HBaseSinkFunction来写Hbase

https://docs.cloudera.com/csa/1.2.0/datastream-connectors/topics/csa-hbase-configuration.html

 

2.如果是低版本的Hbase,比如我这里的1.2.0-cdh5.1.6.2,可以参考:HBase读写的几种方式(三)flink篇Flink 消费kafka数据写入hbase

以及

https://github.com/phillip2019/flink-parent/tree/master/flink-connectors/flink-connector-hbase

 

一些Hbase sink需要的constants

https://github.com/apache/hbase/blob/master/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java

需要引入

<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-common</artifactId>
    <version>1.2.0-cdh5.15.1</version>
</dependency>

参考flume的sink实现

flume在1.8.0支持hbase的1.x版本,使用

https://github.com/apache/flume/blob/trunk/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSinkConfigurationConstants.java

在1.9.0支持了habse的2.x版本,使用

https://github.com/apache/flume/blob/trunk/flume-ng-sinks/flume-ng-hbase2-sink/src/main/java/org/apache/flume/sink/hbase2/HBase2SinkConfigurationConstants.java

 

Java API写Hbase的方式主要有2种

1.一种是使用Table的put API

 

2.另一种是使用BufferedMutator

 

 

实现Hbase Sink

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐