flink SQL与hbase整合

一、前言

flink sql 与hbase 整合 主要实现:flink sql 客户端中的hbase表与hbase中的表数据交互,为以后纯sql编写程序做准备如:创建kafka表、hive表、hbase表、mysql表,kafka表作为source  hive表 sql语句加工作为算子 hbase表、mysql表作为sink表

1.flink sql 客户端中能读取hbase shell 写入的数据  2.flink sql 客户端写入hbase表中的数据在hbase shell中能读取

flink 1.11.0    hbase 1.2

主要参考官网:Apache Flink 1.11 Documentation: HBase SQL Connector

二、主要步骤

1.添加hbase依赖到flink sql客户端

在 /etc/profile 文件中添加如下两行:

export HBASE_HOME=/usr/local/apps/hbase

export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`

添加这两个环境变量主要参考:https://hbase.apache.org/book.html#hbase.mapreduce.classpath       官网上hbase依赖中有说让参考此链接

完整的环境变量配置如下:

flink SQL与hbase整合_第1张图片

重启flink 集群及启动 flink SQL 客户端

./start-cluster.sh

/sql-client.sh embedded

set table.sql-dialect=default;  (我的客户端配置文件中设置了sql-dialect 为hive 所以要切回default )

flink SQL与hbase整合_第2张图片

2.在hbase中创建hbase表,flink SQL中创建hbase表

hbase 中创建hbase表

create 'wm:hbase_user_behavior', 'info';

flink SQL与hbase整合_第3张图片

在flink sql 客户端中建表

CREATE TABLE hbase_user_behavior(
rowkey STRING,
info ROW,
PRIMARY KEY (rowkey) NOT ENFORCED
) WITH (
'connector' = 'hbase-1.4',
'table-name' = 'wm:hbase_user_behavior',
'zookeeper.quorum' = 'ELK01:2181,ELK02:2181,ELK03:2181',
'zookeeper.znode.parent' = '/hbase'
);

建表语句中各字段意思官网上有解释

3.在flink sql客户端中测试读写hbase表数据

1.flink sql 客户端中能读取hbase shell 写入的数据

hbase shell 中添加数据:

flink SQL与hbase整合_第4张图片

flink sql 中读取此数据:  SELECT * FROM hbase_user_behavior;

flink SQL与hbase整合_第5张图片

2.flink sql 客户端写入hbase表中的数据在hbase shell中能读取

INSERT INTO hbase_user_behavior
SELECT 'rowkey_test', ROW('test', 'test', 'test','test','test','test','test','test','test') as info ;

flink sql 执行插入语句 提交jobflink SQL与hbase整合_第6张图片

hbase shell 中查看插入的数据:get 'wm:hbase_user_behavior', 'rowkey_test'

flink SQL与hbase整合_第7张图片

你可能感兴趣的:(flink,hbase)