Flink學習筆記——讀寫Hbase HBase讀寫的幾種方式(三)flink篇

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,則需要自行使用Java API來寫HBase,比如我使用hbase版本爲1.2.0-cdh5.1.6.2,可以參考:HBase讀寫的幾種方式(三)flink篇Flink 消費kafka數據寫入hbase

寫HBase的時候注意開啓Hbase regionserver的hbase.regionserver.port端口防火牆,默認爲60020

Java API寫Hbase的方式主要有2種:

1.一種是使用Table的put API,可以參考

https://github.com/phillip2019/flink-parent/blob/master/flink-connectors/flink-connector-hbase/src/main/java/com/aikosolar/bigdata/flink/connectors/hbase/SimpleHBaseTableSink.java

 

 

2.另一種是使用BufferedMutator,可以參考

https://github.com/phillip2019/flink-parent/blob/master/flink-connectors/flink-connector-hbase/src/main/java/com/aikosolar/bigdata/flink/connectors/hbase/writter/HBaseWriterWithBuffer.java

 

 

一些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

 

 

實現Hbase Sink

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章