Flink关于HiveCatalog

浩客2年前技术文章1623

HiveCatalog

HiveCatalog 有两个用途:作为原生 Flink 元数据的持久化存储,以及作为读写现有 Hive 元数据的接口。

配置

  1. 在flink-sql-connector-hive-1.2.2_2.12-1.15.0.jar包上传到lfink 的lib目录下


  2. 开启hive的元数据服务

    nohup  hive --service metastore >> metastore.log 2>&1 &
  3. 删除flink-table-planner-loader-1.15.0.jar

    rm -rf flink-table-planner-loader-1.15.0.jar
  4. 将flink opt目录下的link-table-planner_2.12-1.15.0.jar 复制到flink的lib目录下

    cp /usr/local/soft/flink-1.15.0/opt/flink-table-planner_2.12-1.15.0.jar /usr/local/soft/flink-1.15.0/lib/
  5. 重启yarn-session和sql-client

    yarn-session.sh -d
    sql-client.sh

如何创建 Flink 表并将其注册到 Catalog

创建hive catalog 

'hive-conf-dir  hive-site.xml文件所在的位置

 CREATE CATALOG hive_catalog WITH (
 'type' = 'hive',
 'hive-conf-dir' = '/opt/hive-3.1.2/conf'
);

切换catalog

use catalog hive_catalog

创建表

create table student
(
id  string,
name string,
age int,
gender string,
clazz string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS textfile
location '/data/student/';

在flink中就可以读取这一张表

在flink创建表,可以将表的元数据存放在hive中

CREATE TABLE student_kafka_proc (
   id STRING,
   name STRING,
   age INT,
   gender STRING,
   clazz STRING,
   user_action_time  as PROCTIME() -- 处理时间
) WITH (
 'connector' = 'kafka',
 'topic' = 'student',
 'properties.bootstrap.servers' = 'master:9092',
 'properties.group.id' = 'testGroup',
 'scan.startup.mode' = 'earliest-offset',
 'format' = 'csv'
);

表的元数据被保存在中的hive元数据中,所以在hive中可以看到这个表,但是在hive中不能对这个表进行查询,

使用hive catalog保存flink的元数据,元数据不会自动删除

相关文章

虚拟机三种网络模式详解

虚拟机三种网络模式详解

在电脑里开一台虚拟机,是再常见不过的操作了。无论是用虚拟机玩只有旧版本系统能运行的游戏,还是用来学习Linux、跑跑应用程序都是很好的。而这其中,虚拟机网络是绝对绕不过去的。本篇文章通俗易懂的介绍了常...

Kubernetes安全--基于sa和user的rbac认证机制

前言Kubernetes中的用户K8S中有两种用户(User)——服务账号(ServiceAccount)和普通意义上的用户(User)ServiceAccount是由K8S管理的,而User通常是在...

ubuntu安装mysql

执行sudo apt install mysql-server启动mysqlsudo systemctl start mysql查看状态sudo systemctl status mysql查看默认密...

MySQL 添加列报错处理

MySQL 添加列报错处理

一、添加列报错(65535)表添加列收到报错,具体 SQL 和报错信息如下:ALTER TABLE table ADD column varchar(256) NULL COMMENT '个人打款授权...

GTID 模式 - 通过跳过事务解决主从故障

一、前言很多场景下我们需要跳过一个事务来修复主从关系,例如主从事务不一致,或者对无主键表更新,导致较大延迟,操作过程在此记录。二、操作流程1. 获取最后一个 GTID 操作在 GTID 模式下,如果需...

MySQL运维实战(5.6) 字符集设置对mysqldump的影响

mysqldump不指定字符集不指定字符集时,默认使用了utf8。可能和环境有关系。mysqldump -uroot test test_load >&n...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。