希望在flink sql脚本启动时自动选择catalog,减少麻烦。于是乎配置sql-client-defaults.yaml:
catalogs:
- name: hive_catalog
type: iceberg
catalog-type: hive
property-version: 1
cache-enabled: true
uri: thrift://localhost:9083
client: 5
warehouse: hdfs://localhost:9000/user/hive/warehouse
hive-conf-dir: /opt/hive/conf
发现没有效果。查了下资料,自flink1.14开始已经不使用sql-client-defaults.yaml了
改用启动sql脚本的方式:
sql-client.sh embedded -i /opt/flink/conf/sql-startup.sql shell
sql-startup.sql:
create catalog hive_catalog with(
'type'='iceberg',
'catalog-type'='hive',
'property-version'='1',
'cache-enabled'='true',
'uri'='thrift://localhost:9083',
'client'='5',
'warehouse'='hdfs://localhost:9000/user/hive/warehouse',
'hive-conf-dir'='/opt/hive/conf'
);
USE CATALOG hive_catalog;
-- create database hive_catalog.test;
use hive_catalog.test;
这样进入后就使用了自己的catalog并默认在test库了
还可执行多个脚本方式:
sql-client.sh embedded shell -i a.sql,b.sql