配置Doris对接Hudi数据源
在MRS集群元数据存储在Hive MetaStore的场景中,CloudTable Doris集群支持通过Catalog的方式对接MRS Hudi数据源。
CloudTable目前不支持S3协议,推荐使用OBS协议创建Hudi Catalog。
- 为了确保网络连通,MRS集群必须与StarRocks集群的VPC、子网保持一致,且将StarRocks集群的所有节点IP加入到MRS集群的安全组中。
- 已在MRS Spark客户端中准备待读取的Hudi表数据。
步骤一:创建MRS Hudi连接
- 登录表格存储服务控制台。
- 用户在集群管理界面,选择目标集群进入集群详情页面。
- 单击“连接管理 > 新建连接”,弹出新建连接页面,创建MRS Hudi连接。
- 新建连接类型:
- 认证类型选择SIMPLE,OBS按钮关闭状态。
- 认证类型选择KERBEROS,OBS按钮关闭状态。
- 认证类型选择SIMPLE,OBS按钮开启状态。
- 认证类型选择KERBEROS,OBS按钮开启状态。
表1 参数说明 参数
描述
名称
根据连接的数据源类型,用户可以自定义连接名。
说明:必须以字母开头,由字母、数字、中划线组成,不能包含其他的特殊字符,并且长度为4~64个字符。
连接器
Doris支持的外部数据目录组件,目前支持可选:Hive。
Hadoop类型
Doris支持hadoop组件,目前支持的可选:MRS。
集群名称
MRS集群名称。
说明:Doris只能对接一个Kerberos集群中的一个用户。
Manager IP
MRS Manager的浮动IP地址,选择连接的集群后,IP地址会自动填充。
认证类型
MRS集群鉴权类型,安全集群可选“KERBEROS”,非安全集群可选“SIMPLE”。选择连接的集群后,安全类型会自动填充。
说明:KERBEROS类型连接只能创建一个。
连接器版本
MRS集群的数据源组件的版本,HIVE支持3版本,可选:3.X。
用户名
MRS集群的用户名,且此用户必须为高权限可以访问Hive、HDFS的底层数据。如果您想创建新用户,请参见创建MRS集群用户。
密码
MRS集群用户对应的密码。
OBS支持
打开按钮,当前创建的Catalog连接的数据表在OBS中。关闭按钮当前创建的Catalog连接的数据表在HDFS中。
- 配置好参数后,单击“测试”。
如果测试失败请检查用户名和密码是否正确。
- 测试完成后,单击确定按钮,连接设置页面会出现一条新的连接记录。
步骤二:使用SQL命令创建Hudi catalog
- 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。
具体登录操作步骤请参见弹性云服务器《用户指南》中的“ SSH密码方式登录”。
- 访问Doris集群,参见使用MySQL客户端连接Doris普通集群。
- 创建Hudi Catalog表。
- 创建认证类型为SIMPLE的Catalog,访问存储在MRS HDFS中的Hudi数据。
CREATE CATALOG hudi_catalog_simple PROPERTIES ( 'type'='hms', 'hive.metastore.uris'='thrift://192.X.X.X:port,thrift://192.x.x.x:port', 'hive.metastore.sasl.enabled' = 'false', 'dfs.nameservices'='hacluster', 'dfs.ha.namenodes.hacluster'='3,4', 'dfs.namenode.rpc-address.hacluster.3'='192.x.x.x:port', 'dfs.namenode.rpc-address.hacluster.4'='192.x.x.x:port', 'dfs.client.failover.proxy.provider.hacluster'='***', 'hive.version' = '3.1.0' ); - 创建认证类型为KERBEROS的Catalog,访问存储在MRS HDFS中的Hudi数据。
CREATE CATALOG hudi_catalog PROPERTIES ( 'type'='hms', 'hive.metastore.uris' = 'thrift://192.x.x.x:port,thrift://192.x.x.x:port', 'hive.metastore.sasl.enabled' = 'true', 'hive.server2.thrift.sasl.qop'='auth-conf', 'hive.server2.authentication' = 'KERBEROS', 'hive.server2.authentication.kerberos.principal' = '***', 'hive.metastore.kerberos.principal' = '***', 'dfs.nameservices'='hacluster', 'dfs.ha.namenodes.hacluster'='3,4', 'dfs.namenode.rpc-address.hacluster.3'='192.x.x.x:port', 'dfs.namenode.rpc-address.hacluster.4'='192.x.x.x:port', 'dfs.client.failover.proxy.provider.hacluster'='***', 'hadoop.security.authentication'='kerberos', 'hadoop.kerberos.principal' = '{kinit_result}', -- kinit {USER_NAME} 的结果 'hive.version' = '3.1.0', 'fs.defaultFS'='hdfs://hacluster', 'hadoop.rpc.protection'='privacy' ); - 创建认证类型为SIMPLE的Catalog,访问存储在OBS中的Hudi数据。
CREATE CATALOG hudi_catalog_simple_obs PROPERTIES ( 'type'='hms', 'hive.metastore.uris'='thrift://192.x.x.x:port,thrift://192.x.x.x:port', 'obs.access_key' = '***', 'obs.secret_key' = '***', 'obs.endpoint' = '***', 'obs.region' = '***', 'hive.metastore.sasl.enabled' = 'true', 'hive.version' = '3.1.0' ); - 创建认证类型为KERBEROS的Catalog,访问存储在OBS中的Hudi数据。
CREATE CATALOG hudi_catalog_obs PROPERTIES ( 'type'='hms', 'hive.metastore.uris' = 'thrift://192.x.x.x:port,thrift://192.x.x.x:port', 'hive.metastore.sasl.enabled' = 'true', 'hive.server2.thrift.sasl.qop'='auth-conf', 'hive.server2.authentication' = 'KERBEROS', 'hive.server2.authentication.kerberos.principal' = '***', 'hive.metastore.kerberos.principal' = '***', 'hadoop.security.authentication'='kerberos', 'hadoop.kerberos.principal' = 'USER_NAME', 'hive.version' = '3.1.0', 'fs.defaultFS'='hdfs://hacluster', 'hadoop.rpc.protection'='privacy', 'obs.access_key' = '***', 'obs.secret_key' = '***', 'obs.endpoint' = '***', 'obs.region' = '***' );相关参数描述以及参数值获取方法。
表2 参数说明 参数
说明
type
对接外部数据类型。
hive.metastore.uris
Hive元数据URI,可在“hive-site.xml”配置文件中查看。
hive.metastore.sasl.enabled
可在“hive-site.xml”配置文件查看。
dfs.nameservices
可在“hdfs-site.xml”配置文件查看。
dfs.ha.namenodes.hacluster
可在“hdfs-site.xml”配置文件查看。
dfs.namenode.rpc-address.hacluster.3
可在“hdfs-site.xml”配置文件查看。
说明:此参数的IP地址可在MRS集群的FusionInsight Manager页面,选择“集群 > 服务 > HDFS > 实例”查看对应NamNode实例的IP地址。
dfs.namenode.rpc-address.hacluster.4
可在“hdfs-site.xml”配置文件查看。
说明:此参数的IP地址可在MRS集群的FusionInsight Manager页面,选择“集群 > 服务 > HDFS > 实例”查看对应NamNode实例的IP地址。
dfs.client.failover.proxy.provider.hacluster
可在“hdfs-site.xml”配置文件查看。
hive.version
Hive版本。
hive.server2.thrift.sasl.qop
可在“hive-site.xml”配置文件查看。
hive.server2.authentication
认证类型,在集群连接页面查看。
hive.server2.authentication.kerberos.principal
可在“hive-site.xml”配置文件查看。
hive.metastore.kerberos.principal
可在“hive-site.xml”配置文件查看。
hadoop.kerberos.principal
获取“hadoop.kerberos.principal”参数值方法:
- 方法一:
- 登录MRS集群的Manager页面。
- 选择“系统 > 权限 > 用户”进入用户页面获取用户。
- 单击“域和互信”,进入域和互信页面获取“本端域”。
- 参数值为:用户名+本端域。
- 方法二:
- 以root用户登录MRS客户端所在节点。
- 进入安装客户端路径。
cd /opt/Bigdata/client/
- 加载环境变量。
source bigdata_env
- 执行kinit命令进行用户认证,获取参数值。
kinit 用户名

hive.version
Hive版本。
fs.defaultFS
可在“core-site.xml”配置文件查看。
hadoop.rpc.protection
可在“core-site.xml”配置文件查看。
obs.access_key
访问OBS桶的AK,获取方式请参见的获取访问密钥(AK/SK)章节。
说明:obs.access_key可以访问到底层数据文件。
obs.secret_key
访问OBS桶的SK,获取方式请参见的获取访问密钥(AK/SK)章节。
obs.endpoint
OBS桶的Endpoint,获取方式请参见的获取终端节点章节。
obs.region
OBS桶所在的Region。
- 以root用户登录MRS客户端所在节点(Master1节点)。
- 进入client目录下,显示出MRS的全部组件,目前使用的组件有HDFS和Hive组件。
cd /opt/Bigdata/client/
HDFS组件中包含了“core-site.xml”、“hdfs-site.xml”配置文件,Hive组件中包含了“hive-site.xml”配置。
- 进入组件中的配置文件查看参数。
- HDFS组件查看。
cd ./HDFS/hadoop/etc/
进入hadoop目录:
cd hadoop
查看“hdfs-site.xml”配置文件,查找相关参数:
cat hdfs-site.xml
- 查看Hive组件中的“hive-site.xml”配置文件,查找相关参数:
cat /opt/Bigdata/client/Hive/config/hive-site.xml
- HDFS组件查看。
- 方法一:
- 创建认证类型为SIMPLE的Catalog,访问存储在MRS HDFS中的Hudi数据。
步骤三:查询数据映射表
- 查看Catalogs。
show catalogs;

- 执行以下命令查询Catalog下面的数据库。
show databases from Catalog名称;

- 切换到指定的Catalog。
switch Catalog名称;
- 查看Catalog中指定的数据库和表。
- 查看指定的数据库
show tables from `Catalog名称`.`数据库名称`;
- 查看指定的表
select * from `Catalog名称`.`数据库名称`.`表名称`;
use database;命令只适用于数据表较少的测试场景,生产集群请谨慎使用。如果数据表较多,使用此命令会加载所有表信息,容易造成Hive MetaStore压力剧增影响MRS生产环境。
- 查看指定的数据库