Doris支持多源数据目录(Multi-Catalog)功能,旨在能够更方便对接外部数据目录,以增强Doris的数据湖分析和联邦数据查询能力。Multi-Catalog 功能在原有的元数据层级上,新增一层Catalog,构成 Catalog -> Database -> Table 的三层元数据层级。其中,Catalog 可以直接对应到外部数据目录。目前支持的外部数据目录包括:Apache Hive, Apache Iceberg 以及标准的JDBC接口(如MySQL)等
CDP7.1.7 SP1、启用Kerberos
Doris
2.0.2
创建的Catalog仅支持查询语句
所有的BE、FE 节点添加JDBC驱动
cd /opt/software/doris/fe/
mkdir jdbc_drivers
cd /opt/software/doris/fe/jdbc_drivers
ln -s /usr/share/java/mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar
cd /opt/software/doris/be/
mkdir jdbc_drivers
cd /opt/software/doris/be/jdbc_drivers
ln -s /usr/share/java/mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar
#创建MySQL catalog
CREATE CATALOG jdbc_mysql_hive PROPERTIES (
"type"="jdbc",
"user"="usernanme",
"password"="password",
"jdbc_url" = "jdbc:mysql://192.168.0.101:3306/dbname",
"driver_url" = "mysql-connector-java.jar",
"driver_class" = "com.mysql.jdbc.Driver"
)
然后执行如下语句进行查询验证,注意:在Doris 的Playground 界面无法切换catalog ,请使用客户端验证
show catalogs;
switch jdbc_mysql_hive;
show databases;
use metastore;
select * from TBLS limit 10;
1、将 core-site.xml,hdfs-site.xml 和 hive-site.xml 放到 FE 和 BE 的 conf 目录下 2、在所有的 BE、FE 节点下放置 krb5.conf 文件和 keytab 认证文件,keytab 认证文件路径和配置保持一致,krb5.conf 文件默认放置在 /etc/krb5.conf 路径。同时需确认JVM参数 -Djava.security.krb5.conf 和环境变量KRB5_CONFIG指向了正确的 krb5.conf 文件的路径。
如下图所示:
下列参数中的hive.metastore.uris
、hive.metastore.sasl.enabled
、hive.metastore.kerberos.principal
、dfs.nameservices
、dfs.ha.namenodes.nameservice1
等参数请以实际集群配置文件core-site.xml,hdfs-site.xml 和 hive-site.xml中的为准。
CREATE CATALOG hive1 PROPERTIES (
'type'='hms',
'hive.metastore.uris' = 'thrift://cdp1.macro.com:9083,thrift://cdp2.macro.com:9083',
'hive.metastore.sasl.enabled' = 'true',
'hive.metastore.kerberos.principal' = 'hive/_HOST@HADOOP.COM',
'dfs.nameservices'='nameservice1',
'dfs.ha.namenodes.nameservice1'='namenode192,namenode118',
'dfs.namenode.rpc-address.nameservice1.namenode192'='cdp1.macro.com:8020',
'dfs.namenode.rpc-address.nameservice1.namenode118'='cdp2.macro.com:8020',
'dfs.client.failover.proxy.provider.nameservice1'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider',
'hadoop.security.authentication' = 'kerberos',
'hadoop.kerberos.keytab' = '/tmp/hive.keytab',
'hadoop.kerberos.principal' = 'hive@HADOOP.COM'
);
show catalogs;
switch hive1;
show databases;
use cdp_airflow;
select * from order_sink limit 10;
Doris支持使用Iceberg API访问元数据的方式,支持Hadoop File System、Hive、REST、Glue、DLF等服务作为Iceberg的Catalog。注意:如果本身的hive 不支持访问Iceberg表那么,使用该HMS来访问icebreg 表也会在查询的提示不支持。本次测试由于当前hive 不支持访问icebreg 表,如下使用hadoop catalog 访问warehouse是比如spark 中设置的hdaoop catalog 的icebreg 存储路径
CREATE CATALOG iceberg_hadoop PROPERTIES (
'type'='iceberg',
'iceberg.catalog.type' = 'hadoop',
'warehouse' = 'hdfs://nameservice1/warehouse/hadoop-iceberg',
'dfs.nameservices'='nameservice1',
'dfs.ha.namenodes.nameservice1'='namenode192,namenode118',
'dfs.namenode.rpc-address.nameservice1.namenode192'='cdp1.macro.com:8020',
'dfs.namenode.rpc-address.nameservice1.namenode118'='cdp2.macro.com:8020',
'dfs.client.failover.proxy.provider.your-nameservice'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider',
'hadoop.security.authentication' = 'kerberos',
'hadoop.kerberos.keytab' = '/tmp/hive.keytab',
'hadoop.kerberos.principal' = 'hive@HADOOP.COM'
);
show catalogs;
switch iceberg_hadoop;
show databases;
use db0223;
select * from t3 limit 10;
通过 MySQL Catalog 连接 MySQL数据库报错, 如果在 show databases 和 show tables 都是没问题的情况下,出现[CANCELLED][HTTP_ERROR]Couldn't open file /opt/software/doris/be/jdbc_drivers/mysql-connector-java.jar 异常,请检查对应的节点在提示的目录如/opt/software/doris/be/jdbc_drivers/ 目录下是否有JDBC驱动
通过 Hive Catalog 连接 Hive 数据库报错:RemoteException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]
如果在 show databases 和 show tables 都是没问题的情况下,查询的时候出现上面的错误,我们需要进行下面两个操作:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有