Flink整合Hive所需要的依赖jar包
flink-sql-connector-hive-3.1.2_2.12-1.14.5.0.jar(FlinkSQL必选)
hive-exec-3.1.2.jar(必选)
flink-connector-hive_2.12-1.14.5.jar(可选,用于DataStream API)
注意:把上述jar包放入到$FLINK_HOME/lib
目录下,重启Flink集群即可。
在Flink中创建元数据库myhive
#创建Flink的元数据库
CREATE CATALOG myhive WITH (
'type'='hive',
'hive-conf-dir'='/export/server/hive/conf',
'hive-version'='3.1.2',
'hadoop-conf-dir'='/export/server/hadoop/etc/hadoop/'
);
USE CATALOG myhive;
使用
- 使用之前,需要启动服务
#启动HDFS
start-all.sh
#2.启动Hive
nohup hive --service metastore > /tmp/hive-metastore.log &
nohup hive --service hiveserver2 > /tmp/hive-hiveserver2.log &
#3.启动Flink
start-cluster.sh
- 登录FlinkSQL
# -i:初始化文件
sql-client.sh -i /export/server/flink/conf/sql-conf.sql
- 使用
#查看所有的catalogs
show catalogs;
#查看当前的catalog
show current catalog;
#切换元数据库
use catalog myhive;
#查看数据库
show databases;
#在Hive中创建数据库
create database flink_demo;
#在Hive中创建表
CREATE TABLE IF NOT EXISTS `flink_demo.users`(
`id` int,
`name` string
)ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
#在FlinkSQL中查看库、表、及数据
show databases;
#在FlinkSQL中切换数据库
use flink_demo;
#查看改数据库下的所有表
show tables;
#查看表的数据,这个时候是没有数据的
select * from users;
#在FlinkSQL中往Hive表中插入数据
insert into users select 1,'zhangsan';
#在FlinkSQL中再次运行查看语句命令,看是否有数据。这个时候是有数据的
select * from users;
#在Hive中查看数据,Hive中也能查看到数据
select * from users;
到此,整合完成。