华为鲲鹏 Aarch64 环境下多 Oracle 、mysql数据库汇聚到Cloudera CDP7.3操作指南

在华为鲲鹏(Kunpeng)AArch64 架构环境下,将 Oracle 和 MySQL 数据库的数据汇聚到 Cloudera CDP 7.3 是一个典型的 异构数据集成 + 大数据平台对接 的复杂任务。

然而,这里存在一个关键的技术限制
👉 Cloudera CDP 7.3 官方仅支持 x86_64 架构,CMP(Cloud Data AI Management Platform(Aarch64版))支持 AArch64(ARM64)架构


正确的架构是:
鲲鹏服务器作为数据抽取端(Source将数据汇聚到远程的CDP 7.3 集群(Target


正确的操作指南:鲲鹏作为数据源端,CDP 7.3 作为目标平台

🎯 场景说明

  • 数据源:Oracle、MySQL(可部署在任意位置)
  • 抽取端:华为鲲鹏 AArch64 服务器(运行 ETL 工具)
  • 目标平台Cloudera CDP 7.3 集群
  • 网络要求:鲲鹏服务器能访问 Oracle、MySQL 和 CDP 集群的网络(如 Hive、HDFS、Kafka 端口)

一、整体架构设计

Text

[Oracle DB]     \

                           \

[MySQL DB]       → (JDBC) → [鲲鹏 AArch64 服务器] → (HDFS/Kafka/Hive) → [CDP 7.3 集群 ]

                          /

         [Sqoop/SeaTunnel/Kettle]

角色分工

  • 鲲鹏服务器:运行 ETL 工具,负责从 Oracle/MySQL 抽取数据,转换后发送到 CDP。
  • CDP 7.3 集群:接收数据,存储于 HDFS、Hive、Kafka 等组件中。

二、推荐方案(鲲鹏兼容 + CDP 集成)

方案 1:Apache SeaTunnel(推荐)

优势

  • 支持 ARM64 编译运行
  • 原生支持 Oracle/MySQL → Hive/HDFS/Kafka
  • 可对接 Spark/Flink on CDP
  • 高性能,适合批处理和流式同步

部署步骤(在鲲鹏 AArch64 服务器)

  • 安装 Java 8/11(OpenJDK

Bash

sudo dnf install java-1.8.0-openjdk-devel -y

  • 下载并编译 SeaTunnel(ARM64 兼容)

Bash

编辑

git clone https://github.com/apache/seatunnel.git

cd seatunnel

mvn clean package -DskipTests -Pconnector-v2

  • 配置 JDBC 驱动
    • 下载 ojdbc8.jar(Oracle)和 mysql-connector-java-8.0.33.jar
    • 放入 seatunnel-dist/target/seatunnel-2.3.4-SNAPSHOT/lib/
  • 编写配置文件 oracle-to-hive.conf

Hocon

env {

  execution.parallelism = 2

  job.mode = "BATCH"

}

source {

  Jdbc {

    url = "jdbc:oracle:thin:@//192.168.1.100:1521/ORCL"

    driver = "oracle.jdbc.driver.OracleDriver"

    user = "scott"

    password = "tiger"

    query = "SELECT id, name, salary, hire_date FROM emp WHERE hire_date > '${START_TIME}'"

    result_table_name = "src_emp"

  }

}

transform {

  # 可选:字段映射、类型转换

}

sink {

  HdfsFile {

    path = "hdfs://cdp-nn:8020/data/emp/"

    file_name = "emp"

    file_format_type = "Parquet"

    hive_meta_store_uri = "thrift://cdp-hms:9083"

    hive_database = "default"

    hive_table = "emp"

    hive_partition_fields = ["dt"]

    hive_partition_value = "${TODAY}"

  }

}

  • 提交任务

Bash

./bin/seatunnel.sh --config config/oracle-to-hive.conf

✅ 数据将写入 CDP 集群的 HDFS 和 Hive 表中。


方案 2:自研 Java + MyBatis + Hive JDBC

适用于定制化需求强的场景。

步骤:

  • 使用 Spring Boot 开发应用,连接 Oracle/MySQL。
  • 使用 HiveServer2 JDBC 或 HDFS Java API 将数据写入 CDP。
  • 打包为 Fat Jar,在鲲鹏服务器运行。

Java

// 示例:写入 Hive

String hiveUrl = "jdbc:hive2://cdp-hiveserver:10000/default";

Connection conn = DriverManager.getConnection(hiveUrl, "hive", "password");

PreparedStatement ps = conn.prepareStatement("INSERT INTO emp VALUES (?, ?, ?)");

ps.setInt(1, id);

ps.setString(2, name);

ps.setDouble(3, salary);

ps.addBatch();

ps.executeBatch();

⚠️ 需在鲲鹏服务器安装 Hadoop 客户端配置(core-site.xml, hdfs-site.xml),或使用 Hive JDBC 直接连接。


方案 3:Kettle(Pentaho Data Integration

  • 在鲲鹏服务器安装 Kettle(需 OpenJDK for AArch64)。
  • 创建 Transformation:
    • Table Input:连接 Oracle/MySQL
    • Hadoop Hive Output:配置 HiveServer2 连接信息
  • 执行并调度。

三、CDP 7.3 端准备(x86_64 集群)

确保 CDP 集群已启用以下服务:

  • HDFS:数据存储
  • Hive Metastore:元数据管理
  • HiveServer2:JDBC 写入支持
  • Kafka(可选):实时流接入

开放网络与权限

  • 开放 HiveServer2 端口(默认 10000)
  • 配置 HDFS 目录权限,允许鲲鹏服务器写入
  • 如启用 Kerberos,需配置 keytab 认证(较复杂,建议测试环境先关闭)

四、关键注意事项(鲲鹏 + CDP 组合)

问题

解决方案

CDP 不支持 AArch64

鲲鹏仅作为客户端/抽取端,CMP替代CDP

JDBC 驱动兼容性

使用纯 Java JDBC 驱动(ojdbc8.jar, mysql-connector-java),兼容 ARM64

网络延迟

确保鲲鹏与 CDP 集群间网络稳定,建议千兆以上

数据量大时性能

使用 Parquet/ORC 格式,批量写入,避免小文件

安全认证

CDP 启用 Kerberos,需在鲲鹏端配置 JAAS keytab,复杂度高


五、替代建议:使用 CDP 原生工具(反向操作)

如果您的 CDP 集群资源充足,更推荐的做法是:

在 CDP 集群内部使用 Sqoop 或 Spark 从远程 Oracle/MySQL 抽取数据。

示例:在 CDP 节点运行 Sqoop

Bash

sqoop import \

  --connect jdbc:oracle:thin:@//oracle-host:1521/ORCL \

  --username scott \

  --password-file /user/hive/pswd \

  --table EMP \

  --target-dir /data/emp \

  --hive-import \

  --hive-table emp

优点

  • 利用 CDP 内部网络,速度快
  • 无需依赖外部鲲鹏服务器
  • 管理集中

前提:CDP 节点能访问 Oracle/MySQL 数据库。


六、总结

项目

说明

正确架构

鲲鹏作为 ETL 客户端 → CDP 7.3 作为目标集群

推荐工具

Apache SeaTunnelARM64 兼容,高性能)

数据写入方式

HDFSHiveKafka

安全建议

测试环境先关闭 Kerberos,生产环境再启用


📌 最终建议流程

  • 确认 CDP 7.3 集群网络可被鲲鹏访问
  • 在鲲鹏服务器部署 SeaTunnel 或 自研 Java 应用
  • 配置 Oracle/MySQL 到 Hive/HDFS 的同步任务
  • 测试数据写入,验证 Hive 表可查
  • 使用 DolphinScheduler 或 Crontab 调度任务
Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐