当前位置: 首页 > news >正文

Doris在CMP7(类Cloudera CDP 7 404版华为Kunpeng)启用 Kerberos部署Doris

Doris在CMP7(类Cloudera CDP 7 404版)启用 Kerberos部署Doris

  • CMP Base 7.1.7(即 Cloud Data AI Data Platform ,基于 Cloud Data AI Manager 管理)
  • 启用 Kerberos(企业级安全认证)

这三种场景下,Apache Doris 与 CMP 的集成策略需区别对待。下面我将分别说明 可行方案、安全集成要点、实施建议,并提供 可运行的代码/脚本模板(包括 Kerberos 配置、Spark Connector 示例、Hive Catalog 配置等)。


一、总体原则

环境

是否推荐部署 Doris

推荐集成方式

CMP Base 7.1.7(私有云,Kerberos

推荐(可控环境)

独立部署 Doris + Kerberos 集成 + Hive Catalog / Spark Connector

CMP Public Cloud

⚠️ 有限支持

仅可通过 External Compute(如 AWS EC2 / Azure VM)部署 Doris,通过 VPC 对等连接访问 CMP 数据湖

Kerberos 启用

必须配置

Doris 需配置 Kerberos 客户端,获取 keytab,支持 HDFS/Hive 安全访问

CMP Public Cloud 限制
CMP Public Cloud(如 Data Lake、DW、Streams 等服务)不开放底层节点 SSH 或 Parcel 安装权限,无法在托管集群内直接部署 Doris。必须使用 外部计算资源


二、方案 1:CMP Base 7.1.7 + Kerberos 环境(推荐生产使用)

目标

  • 在 CMP 私有云集群旁独立部署 Doris
  • Doris 能安全读取 Hive 表(通过 Hive Metastore + Kerberos)
  • Spark on YARN 作业可写入 Doris

步骤 1:准备 Doris 部署节点(3 台)

  • 操作系统:RHEL/CentOS 7/8(与 CMP 一致)
  • 安装 Kerberos 客户端:

Bash:

yum install -y krb5-workstation krb5-libs

  • 从 CMP 集群复制 /etc/krb5.conf 到 Doris 节点

步骤 2:创建 Doris 服务主体并生成 keytab

在 CMP 的 KDC(如 FreeIPA 或 MIT KDC)中执行:

Bash:

# 创建主体

kadmin.local -q "addprinc -randkey doris/CMP-node1@EXAMPLE.COM"

kadmin.local -q "addprinc -randkey doris/CMP-node2@EXAMPLE.COM"

kadmin.local -q "addprinc -randkey doris/CMP-node3@EXAMPLE.COM"

# 生成 keytab(在 Doris FE 节点执行)

kadmin.local -q "xst -k /etc/security/keytabs/doris.keytab doris/CMP-node1@EXAMPLE.COM"

注意:BE 节点也需要对应主机名的主体(或使用通配符 doris/_HOST@REALM,需 KDC 支持)。


步骤 3:部署 Apache Doris(2.0+

下载地址(以 2.1.0 为例):

Bash:

wget https://archive.apache.org/dist/doris/2.1.0-rc01/apache-doris-2.1.0-bin-x86_64.tar.gz

tar -xzf apache-doris-2.1.0-bin-x86_64.tar.gz -C /opt/

ln -s /opt/apache-doris-2.1.0 /opt/doris

配置 fe/conf/fe.conf:

Ini:

priority_networks = 10.0.0.0/24

enable_token_check = false

配置 be/conf/be.conf:

Ini:

priority_networks = 10.0.0.0/24


步骤 4:配置 Hive Catalog(支持 Kerberos

在 Doris 中执行 SQL:

Sql:

CREATE EXTERNAL CATALOG hive_kerberos_catalog

PROPERTIES (

  "type" = "hive",

  "hive.metastore.uris" = "thrift://CMP-hms-host.example.com:9083",

  "hive.metastore.sasl.enabled" = "true",

  "hive.metastore.kerberos.principal" = "hive/_HOST@EXAMPLE.COM",

  "doris.hive.catalog.kerberos.principal" = "doris/CMP-node1@EXAMPLE.COM",

  "doris.hive.catalog.kerberos.keytab" = "/etc/security/keytabs/doris.keytab",

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

  "hadoop.security.kerberos.ticket.cache.path" = "/tmp/doris_krb5cc"

);

✅ 验证:

Sql:

SHOW CATALOGS;

SWITCH hive_kerberos_catalog;

SHOW DATABASES;

SELECT * FROM default.sales LIMIT 10;


步骤 5:Spark on YARN 写入 Doris(Kerberos 环境)

5.1 准备 JAR

从 Maven Central 下载适配 Spark 3.2(CMP Base 7.1.7 默认)的版本:

Bash:

# 示例:Spark 3.2 + Scala 2.12

wget https://repo1.maven.org/maven2/org/apache/doris/spark-doris-connector-3.2_2.12/1.3.0/spark-doris-connector-3.2_2.12-1.3.0.jar

5.2 Spark 作业示例(PySpark

Python:

from pyspark.sql import SparkSession

spark = SparkSession.builder \

    .appName("Write to Doris") \

    .config("spark.jars", "/path/to/spark-doris-connector-3.2_2.12-1.3.0.jar") \

    .getOrCreate()

df = spark.sql("SELECT * FROM hive_table")

df.write.format("doris") \

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

    .option("doris.table.identifier", "analytics.sales") \

    .option("user", "root") \

    .option("password", "") \

    .option("doris.write.fields", "col1,col2,col3") \

    .mode("append") \

    .save()

🔐 Kerberos 注意:Spark 作业本身已通过 CMP 的 YARN/Kerberos 认证,Doris 写入走的是 Doris 自身的 MySQL 协议(非 Kerberos,因此只需确保 Doris FE 开放 8030 端口且网络可达。


三、方案 2:CMP Public Cloud(外部 Doris 部署)

架构

Text:

[CMP Public Cloud Data Lake]

        ↑ (VPC Peering / PrivateLink)

[AWS EC2 / Azure VM] ←─ 部署 Apache Doris

实施要点

  • 网络打通
    • 在 AWS:使用 VPC Peering 或 PrivateLink 连接 CMP Public Cloud VPC
    • 在 Azure:使用 VNet Peering
  • Hive Metastore 访问
    • CMP Public Cloud 的 HMS 通常通过 Atlas/ Ranger 网关暴露,需申请 Private Endpoint
    • 或通过 CMP Data Engineering 集群的 HMS(需开通访问权限)
  • Kerberos
    • CMP Public Cloud 使用 FreeIPA + Kerberos
    • 需在 Doris 节点加入 FreeIPA 域(或手动配置 krb5.conf + keytab)
  • 数据导入
    • 推荐使用 S3 / ADLS Gen2 作为中间层:
      • Spark 作业写 Parquet 到 S3
      • Doris 通过 S3 Load 或 Broker Load 导入

示例:Doris 从 S3 加载(无需 Kerberos

Sql:

CREATE LOAD LABEL sales_20251105

(

    DATA INFILE("s3://my-bucket/sales/*.parquet")

    INTO TABLE sales

    FORMAT AS "parquet"

)

WITH BROKER "my_s3_broker"

PROPERTIES

(

    "s3.endpoint" = "s3.us-west-2.amazonaws.com",

    "s3.access_key" = "AKIA...",

    "s3.secret_key" = "xxxx",

    "timeout" = "3600"

);


四、关键脚本模板(CMP Base 7.1.7 + Kerberos

1. krb5.conf(与 CMP 一致)

Ini:

[libdefaults]

  default_realm = EXAMPLE.COM

  dns_lookup_realm = false

  dns_lookup_kdc = false

  ticket_lifetime = 24h

  renew_lifetime = 7d

  forwardable = true

[realms]

  EXAMPLE.COM = {

    kdc = kdc.example.com

    admin_server = kdc.example.com

  }

[domain_realm]

  .example.com = EXAMPLE.COM

  example.com = EXAMPLE.COM

2. 自动续期 Kerberos Ticket(Cron

Bash:

# /etc/cron.d/doris-krb

0 */8 * * * root kinit -k -t /etc/security/keytabs/doris.keytab doris/$(hostname -f)@EXAMPLE.COM && cp /tmp/krb5cc_* /tmp/doris_krb5cc

3. Doris 启动脚本(systemd

Ini:

# /etc/systemd/system/doris-fe.service

[Unit]

Description=Apache Doris FE

After=network.target

[Service]

Type=forking

User=doris

ExecStart=/opt/doris/fe/bin/start_fe.sh --daemon

ExecStop=/opt/doris/fe/bin/stop_fe.sh

Restart=on-failure

[Install]

WantedBy=multi-user.target


五、总结与建议

环境

推荐做法

风险

CMP Base 7.1.7 + Kerberos

独立部署 Doris + Hive Catalog + Spark Connector

需手动维护 Doris 集群

CMP Public Cloud

外部 VM 部署 Doris + S3 中转 + VPC Peering

网络/权限配置复杂

通用

不要尝试 Parcel 集成

无官方支持,升级困难

http://www.dtcms.com/a/573159.html

相关文章:

  • 每周读书与学习->JMeter主要元件详细介绍(四)再谈取样器
  • 【个人成长笔记】在 Linux 系统下撰写老化测试脚本以实现自动压测效果(亲测有效)
  • 租用服务器一般是谁帮助维护网站安全营销网站找什么公司做
  • 四川建设厅下载专区网站iis7 伪静态 wordpress
  • 在FPGA中实现频率计方案详解(等精度测量)
  • HTTP 是什么?它是如何工作的
  • 西安网站seo技术厂家漯河市源汇区建设局网站
  • 火山引擎发布Data Agent新能力,推动用户洞察进入“智能3.0时代”​
  • vue-office——支持多种文件(docx、excel、pdf)预览的vue组件库,支持vue2/3。也支持非Vue框架的预览。
  • Unity SpriteRenderer 进度条 Shader 实现
  • 【数据结构】基于BF算法的树种病毒检测
  • 网站服务内容填网站建设可以网站友链查询源码
  • 详细解释 半正定性:对任意非零向量 v,有 vTΣv≥0。
  • 智能家居系统设计与实施方案
  • 【算法】图相关算法和递归
  • Vue开发系列——读取本地资源报错‘Not allowed to load local resource:
  • 【Java基础14】函数式接口、lamba表达式、方法引用一网打尽(下)
  • 金仓KES vs. 达梦DM:全面对比解析迁移、运维与授权成本
  • 国际网站如何推做推广个人做百度云下载网站吗
  • 【Python爬虫基础-1】爬虫开发基础
  • 外贸设计网站邯郸微信托管
  • 深度学习_原理和进阶_PyTorch入门(1)
  • C# 实现在 Excel 中高效生成和操作表格
  • OpenTeleDB xstore vs GaussDB ustore表膨胀测试
  • 使用 OpenAI Responses API 构建生产级应用的终极指南—— 状态、流式、异步与文件处理
  • 2025/11/5 IO流(字节流、字符流、字节缓冲流、字符缓冲流) 计算机存储规则(ASCII、GBK、Unicode)
  • 解决excel复制页面行高无法复制的问题
  • SSO登录验证设计要点细节(以微软 Microsoft SSO为例) 基于react python
  • 郑州网站备案地址移动互联网开发工程师证书
  • 网站建设的难处wordpress 臃肿