更新时间:2025-10-29 GMT+08:00
分享

MRS Hudi数据源

支持的版本

本数据集成服务全面支持华为云大数据MRS Hudi产品,支持Hudi主流版本,可满足不同用户在多种部署环境下的数据同步需求。

使用前准备及限制

  • 网络要求

    MRS Hudi数据源必须与CDM网络进行通讯,以确保数据传输的顺畅性。详情请参见网络打通

  • 权限要求
    • Hudi读写权限
      • 读权限:如果需要从Hudi读取数据,需要为数据集成服务的IAM用户或用户组授予Hudi的只读权限,如MRS ReadOnlyAccess系统策略,或者根据具体需求创建自定义策略,授予如SELECT等读取相关操作的权限。
      • 写权限:如果需要向Hudi写入数据,除了上述OBS权限外,还需要为数据集成服务的IAM用户或用户组授予Hudi的写入权限,如MRS CommonOperationsMRS FullAccess系统策略,或者创建自定义策略,授予如INSERT INTO TABLECREATE TABLE等写入相关操作的权限。
      • OBS权限(存算分析场景):当MRS-Hudi开启存算分析,数据集成服务将与OBS进行读写文件交互,需要拥有OBS文件的读写权限。
    • 访问端口放通:在配置MRS Hudi数据源时,需要确保以下端口在安全组或自有网络已经放通,以供数据集成服务访问MRS使用。
      表1 各服务端口说明

      服务

      端口类型

      端口号

      用途

      Spark

      TCP

      22550

      Spark JDBC Thrift端口,用于Spark客户端与Spark服务器之间的通信。

      MRS Manager

      TCP

      28443

      下载MRS集群配置。

      20009

      CAS认证端口。

      20029

      Manager与其他组件之间的通信和管理操作。

      KDC

      TCP&&UDP

      21730

      Kerberos认证使用。

      21731

      Kerberos认证使用。

      21732

      Kerberos认证使用

      HDFS

      TCP

      8020

      HDFS NameNode服务端口。

      9866

      HDFS dataNode服务端口。

      Hudi

      TCP

      10000

      HudiServer服务端口,用于客户端与HudiServer之间的通信。

      9083

      Hudi Metastore服务端口,用于存储和管理Hudi的元数据信息。

      Zookeeper

      TCP

      2181

      Zookeeper服务端口,用于客户端与Zookeeper集群之间的通信。

支持的数据类型

数据集成读取Hudi依赖Spark读取能力支持以下字段:

类别

字段类型

MRS Hive 读取

字符串类

STRING

整数类

TINYINT

INTEGER

SMALLINT

INT

BIGINT

浮点类

FLOAT

DOUBLE

DECIMAL

日期时间类

TIMESTAMP

DATE

布尔型

BOOLEAN

二进制

BINRAY

复杂类型

ARRAY

MAP

STRUCT

x

支持的迁移场景

数据集成离线同步支持以下三种同步方式,以满足不同数据迁移场景的需求:

需要注意的是,分库分表与整库迁移能力会根据不同region的上线支持情况有所不同,具体支持情况以页面为准。以下是针对Hudi的支持迁移场景概览:

支持迁移场景

单表读取

单表写入

分库分表读取

分库分表写入

整库读取

整库写入

是否支持

x

x

x

核心能力速览

  • 连接配置

    配置项

    支持情况

    说明

    kerberos认证

    通过Kerberos认证方式访问MRS集群。

    存算分离

    支持存算分离架构,读取OBS/HDFS多种不同Hive存储文件系统能力。

  • 读取能力

    配置项

    支持情况

    说明

    增量读取

    支持通过【where子句】配置增量读取,可按条件筛选数据,高效读取新增或修改部分,避免全量读取。

    分片并发

    支持分片并发读取,底层文件被划分为多个分片并行读取,充分利用资源,提升读取性能,尤其适用于大规模数据集。

    自定义字段

    x

    可在任务级追加计算列、常量列或脱敏函数,满足个性化业务需求,暂不支持。

    脏数据处理

    支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败。

  • 写入能力

    配置项

    支持情况

    说明

    写入模式

    LOAD

    TRUNCATE+LOAD

    INSERT_OVERWRITE

    LOAD:适用于数据追加场景,不会对目标表中的已有数据进行任何修改或删除操作,直接将新数据追加到表中。

    TRUNCATE+LOAD:在写入数据前,会先清空目标分区中的所有数据,然后将新数据写入。这种方式适合于需要完全替换分区数据的场景。

    INSERT_OVERWRITE:对目标分区的数据进行覆盖写入,可以根据指定的条件或规则,对分区中的数据进行更新或替换。

    导入前后处理

    支持TRUNCATE+LOAD方式对选用分区进行清空。

    脏数据处理

    x

    支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败,暂不支持。

    并发写入

    并发写入可以充分利用集群资源,提高数据写入的速度。

    运行态建表

    在数据写入过程中动态创建表。如果目标表不存在,Hudi 会根据写入的数据自动创建表结构,无需预先手动创建表。

    编辑态建表

    在作业编辑过程中手动创建表。用户可以根据数据的结构和需求,提前定义表的结构、字段类型、分区策略等。

创建数据源

DataArts Studio管理中心新建相应的数据源,详情请参见创建DataArts Studio数据连接

创建数据集成离线作业

DataArts Studio数据开发中新建MRS Hive集成作业,详情请参见新建离线处理集成作业

相关文档