Flink关于HiveCatalog

浩客2年前技术文章1734

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的元数据,元数据不会自动删除

相关文章

开源大数据集群部署(六)Keytab文件生成

开源大数据集群部署(六)Keytab文件生成

1、 创建keytab文件除了使用明文密码登录之外,Kerberos还可以使用keytab密码文件登陆,现在为testcuser创建它的keytab文件ipa-getkeytab -s ipa.hdp...

doris数据删除恢复

用户执行命令drop database/table/partition之后,再使用命令recover来恢复整个数据库/表/分区的所有数据。这种修复将会把FE上的数据库/表/分区的结构,从catalog...

AD域主备部署

AD域主备部署

总览在本篇文章中, 我将记录部署多 DC 实现高可用方案的详细步骤, 期间我会尽量使用 PowerShell 来实现相应的动作, 实在找不到命令或者 GUI 更方便的再附截图. 主要步骤分为:部署 2...

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

目前Spark中Structured Streaming只支持实时向Iceberg中写入数据,不支持实时从Iceberg中读取数据,下面案例我们将使用Structured Streaming从Kafk...

k8s Krew 插件开发详解

前言:前面我们已经了解过krew插件的作用以及一些比较常用的插件,接下来我们讲一下如何开发krew插件。1、熟悉kubens 插件在开发krew插件之前,我们先通过kubens插件来熟悉krew,我们...

shell编程基础(二)

1、条件表达式1.1 文件判断常用文件测试操作符:-d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立-f文件,f的全拼为file 文件存在且为普通文件则为真,即测试表达式...

发表评论    

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