更新时间:2026-05-22 GMT+08:00
分享

配置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连接

  1. 登录表格存储服务控制台
  2. 用户在集群管理界面,选择目标集群进入集群详情页面。
  3. 单击“连接管理 > 新建连接”,弹出新建连接页面,创建MRS Hudi连接。
  4. 新建连接类型:

    • 认证类型选择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中。

  5. 配置好参数后,单击“测试”。

    如果测试失败请检查用户名和密码是否正确。

  6. 测试完成后,单击确定按钮,连接设置页面会出现一条新的连接记录。

步骤二:使用SQL命令创建Hudi catalog

  1. 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。

    具体登录操作步骤请参见弹性云服务器《用户指南》中的“ SSH密码方式登录”。

  2. 访问Doris集群,参见使用MySQL客户端连接Doris普通集群
  3. 创建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”参数值方法:

      • 方法一:
        1. 登录MRS集群的Manager页面。
        2. 选择“系统 > 权限 > 用户”进入用户页面获取用户。
        3. 单击“域和互信”,进入域和互信页面获取“本端域”。
        4. 参数值为:用户名+本端域。
      • 方法二:
        1. root用户登录MRS客户端所在节点。
        2. 进入安装客户端路径。
          cd /opt/Bigdata/client/
        3. 加载环境变量。
          source bigdata_env
        4. 执行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。

      1. 以root用户登录MRS客户端所在节点(Master1节点)。
      2. 进入client目录下,显示出MRS的全部组件,目前使用的组件有HDFS和Hive组件。
        cd /opt/Bigdata/client/

        HDFS组件中包含了“core-site.xml”、“hdfs-site.xml”配置文件,Hive组件中包含了“hive-site.xml”配置。

      3. 进入组件中的配置文件查看参数。
        1. HDFS组件查看。
          cd ./HDFS/hadoop/etc/

          进入hadoop目录:

          cd hadoop

          查看“hdfs-site.xml”配置文件,查找相关参数:

          cat hdfs-site.xml
        2. 查看Hive组件中的“hive-site.xml”配置文件,查找相关参数:
          cat /opt/Bigdata/client/Hive/config/hive-site.xml

步骤三:查询数据映射表

  1. 查看Catalogs。

    show catalogs;

  2. 执行以下命令查询Catalog下面的数据库。

    show databases from Catalog名称;

  3. 切换到指定的Catalog。

    switch Catalog名称;

  4. 查看Catalog中指定的数据库和表。

    • 查看指定的数据库
      show tables from `Catalog名称`.`数据库名称`;
    • 查看指定的表
      select * from `Catalog名称`.`数据库名称`.`表名称`;

    use database;命令只适用于数据表较少的测试场景,生产集群请谨慎使用。如果数据表较多,使用此命令会加载所有表信息,容易造成Hive MetaStore压力剧增影响MRS生产环境。

相关文档