Doris 并入CMP7(类Cloudera CDP 7.3.1 404华为鲲鹏ARM版)的方案和实施源代码

Apache Doris 并入CMP7(类Cloudera CDP 7 404版)的方案和实施源代码

截至目前(2025年11月),Apache Doris 并未被 Cloud Data AI 官方支持为 CMP (Cloud Data AI Data Platform )的原生组件 ,因此 不存在官方" 并入 CMP" 的方案或实施源代码 。Cloud Data AI CMP 的服务管理基于 Parcel + Cloud Data AI Manager (CM) 体系,而 Apache Doris 并未提供官方的 Parcel 包或 CM 插件。

不过,社区和企业用户可以通过 自定义集成方式 将 Doris 与 CMP 协同部署和使用。下面将从 可行方案可参考的开源/ 示例代码 两方面详细说明,并提供 模拟实现思路部分脚本示例

一、可行集成方案概览

方案 描述 是否需要修改源码
1. 独立部署 + 数据互通 在 CMP 集群外独立部署 Doris,通过 HDFS/Kafka/Hive 与 CMP 交换数据
2. 使用 External Catalog(Doris 2.0+) Doris 直接查询 Hive 表(通过 Hive Metastore) 否(仅配置)
3. 自定义 Parcel(实验性) 手动打包 Doris 为 Cloud Data AI Parcel,通过 CM 管理(非官方) 是(需编写 parcel.json、脚本等)
4. Spark/Flink Connector 写入 利用 Doris 官方提供的连接器从 CMP 中的 Spark/Flink 写入数据 否(使用官方 connector)

推荐方案:1 + 2 + 4 组合 ------ 无需侵入 CMP,稳定性高,运维清晰。


二、官方连接器源代码(可用于 CMP 集成)

这些是 Apache Doris 官方维护的连接器,可直接用于 CMP 中的 Spark/Flink 作业:

1. Flink Doris Connector

Java:

DorisSink.Builder<String> builder = DorisSink.builder();

builder.setDorisReadOptions(DorisReadOptions.builder().build())

.setDorisExecutionOptions(DorisExecutionOptions.builder()

.setLabelPrefix("flink_job")

.setStreamLoadProp(streamLoadProp)

.build())

.setSerializer(new SimpleStringSerializer())

.setDorisOptions(DorisOptions.builder()

.setFenodes("doris-fe:8030")

.setTableIdentifier("db.table")

.setUsername("root")

.setPassword("")

.build());

stream.addSink(builder.build());

2. Spark Doris Connector

Scala:

val df = spark.read.format("doris")

.option("doris.fenodes", "doris-fe:8030")

.option("doris.table.identifier", "db.table")

.option("user", "root")

.option("password", "")

.load()

✅ 这些连接器可直接在 CMP 的 Spark on YARNFlink on YARN 中使用。


三、实验性方案:将 Doris 打包为 Cloud Data AI Parcel (非官方)

⚠️ 此方案 无官方支持 ,仅适用于高级用户做 PoC 或内部工具化,不建议生产环境使用

实现原理

Cloud Data AI Parcel 是一个 .parcel 文件(本质是 tar.gz)+ parcel.json + 激活脚本,由 Cloud Data AI Manager 管理生命周期。

步骤简述

  • 下载 Doris 二进制包(如 apache-doris-x.x.x-bin.tar.gz)
  • 编写 parcel.json
  • 编写启动/停止脚本(调用 start_fe.sh, start_be.sh)
  • 打包为 .parcel 和 .sha 校验文件
  • 部署到 CM 的 parcel repo 目录
  • 在 CM 界面分配并激活

示例:parcel.json 片段

Json:

{

"schema_version": 1,

"name": "DORIS",

"version": "2.0.3",

"extraVersionInfo": {

"fullVersion": "2.0.3-cdh7.1.7",

"baseVersion": "2.0.3",

"patchLevel": "0"

},

"scripts": {

"defines": "doris_env.sh",

"start": "scripts/doris_start.sh",

"stop": "scripts/doris_stop.sh"

},

"packages": [],

"components": [

{

"name": "DORIS_FE",

"version": "2.0.3",

"pkg_version": "2.0.3"

},

{

"name": "DORIS_BE",

"version": "2.0.3",

"pkg_version": "2.0.3"

}

]

}

启动脚本示例 (doris_start.sh)

Bash:

#!/bin/bash

source /opt/Cloud Data AI /parcels/DORIS/doris_env.sh

if [ "$ROLE_TYPE" == "DORIS_FE" ]; then

/opt/Cloud Data AI /parcels/DORIS/lib/doris/bin/start_fe.sh --daemon

elif [ "$ROLE_TYPE" == "DORIS_BE" ]; then

/opt/Cloud Data AI /parcels/DORIS/lib/doris/bin/start_be.sh --daemon

fi

🔧 完整实现需处理:配置生成、日志路径、Kerberos 集成、端口冲突、CM 监控指标上报等,工作量较大。

社区参考项目(非官方)


四、推荐实施路径(无需源码修改)

架构图

Text:

CMP Cluster (HDFS, Hive, Kafka, Spark)

↑↓ (via Connector / Broker Load / Hive Catalog)

Apache Doris (独立部署在3台物理机)

BI Tools (Superset/Tableau via MySQL JDBC)

实施步骤

Sql:

CREATE EXTERNAL CATALOG hive_catalog

PROPERTIES (

"type" = "hive",

"hive.metastore.uris" = "thrift://CMP-hive-metastore:9083",

"hadoop.security.authentication" = "kerberos",

"kerberos.principal" = "doris@REALM",

"kerberos.keytab" = "/path/to/doris.keytab"

);

  • 从 CMP Spark 写入 Doris
    • 将 spark-doris-connector JAR 包放入 Spark 的 --jars
    • 提交作业:

Bash:

spark-submit \

--master yarn \

--jars /opt/doris-spark-3.4_2.12-1.3.0.jar \

your_app.py

  • 监控与告警
    • 使用 Doris 自带 Prometheus Exporter
    • 接入 CMP 的 Cloud Data AI Manager 外部监控(通过 API 或 Grafana)

五、总结

问题 回答
是否有官方"并入 CMP"方案? ❌ 无
是否有官方源代码支持集成? ✅ 有(Flink/Spark Connector)
能否做成 CM 托管服务? ⚠️ 可手动实现 Parcel,但无官方支持,风险高
推荐做法? 独立部署 Doris + 使用官方 Connector + Hive Catalog 查询 CMP 数据湖

六、附:关键开源代码仓库


如你希望我提供 完整的 Parcel 打包脚本模板CMP + Doris 联合部署的 Ansible 脚本示例,可以继续说明你的环境(如 CMP Base 7.1.7 / CMP Public Cloud / 是否启用 Kerberos 等),我可以为你定制。

相关推荐
YangYang9YangYan2 小时前
高职大数据技术专业学习与发展指南
大数据·人工智能·学习·数据分析
汤姆yu2 小时前
基于大数据的天气分析与应用系统
大数据
老衲提灯找美女3 小时前
MySQL数据库基础操作:
数据库·mysql·oracle
轻舟客丶3 小时前
ORA-03113的解决方案
数据库·经验分享·笔记·oracle
悦光阴3 小时前
SQL Server 并发控制:Fabric Warehouse只支持快照隔离
大数据·运维·数据库·fabric
DolphinScheduler社区4 小时前
Apache DolphinScheduler 3.3.2 正式发布!性能与稳定性有重要更新
大数据·开源·apache·任务调度·海豚调度·发版
SeaTunnel4 小时前
Apache SeaTunnel 支持 Metalake 开发了!避免任务配置敏感信息暴露
大数据·开源·apache·个人开发·数据集成·seatunnel·看开源之夏
一颗宁檬不酸4 小时前
PL/SQL 知识点总结
数据库·sql·oracle·知识点
飞雁科技4 小时前
CRM客户管理系统定制开发:如何精准满足企业需求并提升效率?
大数据·运维·人工智能·devops·驻场开发