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
在 /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 集群及启动 flink SQL 客户端
./start-cluster.sh
/sql-client.sh embedded
set table.sql-dialect=default; (我的客户端配置文件中设置了sql-dialect 为hive 所以要切回default )
hbase 中创建hbase表
create 'wm:hbase_user_behavior', 'info';
在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'
);
建表语句中各字段意思官网上有解释
1.flink sql 客户端中能读取hbase shell 写入的数据
hbase shell 中添加数据:
flink sql 中读取此数据: SELECT * FROM hbase_user_behavior;
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 ;
hbase shell 中查看插入的数据:get 'wm:hbase_user_behavior', 'rowkey_test'