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

doris:FQDN

本文介绍如何启用基于 FQDN(Fully Qualified Domain Name,完全限定域名)使用 Apache Doris。FQDN 是 Internet 上特定计算机或主机的完整域名。

Doris 支持 FQDN 之后,各节点之间通信完全基于 FQDN。添加各类节点时应直接指定 FQDN,例如添加 BE 节点的命令为ALTER SYSTEM ADD BACKEND "be_host:heartbeat_service_port"

be_host 此前是 BE 节点的 IP,启动 FQDN 后,be_host 应指定 BE 节点的 FQDN。

前置条件​

  1. fe.conf 文件 设置 enable_fqdn_mode = true

  2. 集群中的所有机器都必须配置有主机名。

  3. 必须在集群中每台机器的 /etc/hosts 文件中指定集群中其他机器对应的 IP 地址和 FQDN。

  4. /etc/hosts 文件中不能有重复的 IP 地址。

最佳实践​

新集群启用 FQDN​

  1. 准备机器,例如想部署 3FE 3BE 的集群,可以准备 6 台机器。

  2. 每台机器执行host返回结果都唯一,假设六台机器的执行结果分别为 fe1,fe2,fe3,be1,be2,be3。

  3. 在 6 台机器的/etc/hosts 中配置 6 个 FQDN 对应的真实 IP,例如:

    172.22.0.1 fe1
    172.22.0.2 fe2
    172.22.0.3 fe3
    172.22.0.4 be1
    172.22.0.5 be2
    172.22.0.6 be3
    

  4. 验证:可以在 FE1 上 ping fe2 等,能解析出正确的 IP 并且能 Ping 通,代表网络环境可用。

  5. 每个 FE 节点的 fe.conf 设置 enable_fqdn_mode = true

  6. 参考手动部署

  7. 按需在六台机器上选择几台机器部署 broker,执行ALTER SYSTEM ADD BROKER broker_name "fe1:8000","be1:8000",...;

K8s 部署 Doris​

Pod 意外重启后,K8s 不能保证 Pod 的 IP 不发生变化,但是能保证域名不变,基于这一特性,Doris 开启 FQDN 时,能保证 Pod 意外重启后,还能正常提供服务。

K8s 部署 Doris 的方法请参考K8s 部署 Doris

服务器变更 IP​

按照'新集群启用 FQDN'部署好集群后,如果想变更机器的 IP,无论是切换网卡,或者是更换机器,只需要更改各机器的/etc/hosts即可。

旧集群启用 FQDN​

前提条件:当前程序支持ALTER SYSTEM MODIFY FRONTEND "<fe_ip>:<edit_log_port>" HOSTNAME "<fe_hostname>"语法, 如果不支持,需要升级到支持该语法的版本

警告

注意:

至少有三台 follower 才能进行如下操作,否则会造成集群无法正常启动

接下来按照如下步骤操作:

1. 逐一对 Follower、Observer 节点进行以下操作 (最后操作 Master 节点):

  1. 停止节点。

  2. 检查节点是否停止。通过 MySQL 客户端执行show frontends,查看该 FE 节点的 Alive 状态直至变为 false

  3. 为节点设置 FQDN: ALTER SYSTEM MODIFY FRONTEND "<fe_ip>:<edit_log_port>" HOSTNAME "<fe_hostname>"(停掉 master 后,会选举出新的 master 节点,用新的 master 节点来执行 sql 语句)

  4. 修改节点配置。修改 FE 根目录中的conf/fe.conf文件,添加配置:enable_fqdn_mode = true。如果在刚停止的节点对应 fe.conf 添加了配置后无法正常启动,请在所有 fe.conf 中添加配置enable_fqdn_mode = true后再启动刚刚停止的 fe 节点

  5. 启动节点。

2. BE 节点启用 FQDN 只需要通过 MySQL 执行以下命令,不需要对 BE 执行重启操作。

ALTER SYSTEM MODIFY BACKEND "<backend_ip>:<HeartbeatPort>" HOSTNAME "<be_hostname>",如果你不知道端口 HeartbeatPort 是多少,请使用 show backends 命令来帮助寻找此端口;

相关文章:

  • pyspark学习rdd处理数据方法——学习记录
  • 3.22模拟面试
  • kotlin 函数引用
  • 通过webrtc+canvas+css实现简单的电脑滤镜拍照效果
  • 同旺科技USB to SPI 适配器 ---- 指令循环发送功能
  • Baklib智能内容推荐的核心是什么?
  • Vue3前端开发:组件化设计与状态管理
  • 文献分享: XTR——优化Token级检索的高效多向量模型
  • nginx5天时间从0到熟练掌握学习计划
  • 坐标变换其一 ccf-csp 2023-9-1
  • 自定义reset50模型转换到昇腾om
  • dijkstra(堆优化版)
  • 长沙搞么子
  • 数字证书 与 数字签名 介绍
  • C语言 转义字符
  • 从GTC2025首次量子日看英伟达量子AI融合算力网络前景与趋势
  • Deepseek训练成AI图片生成机器人
  • 线程的概念和控制
  • Kotlin 协程基础知识汇总(一)
  • vue3:十一、主页面布局(进入指定菜单页面,默认锁定到左侧菜单)
  • 160名老人报旅行团被扔服务区?张家界官方通报
  • 中国农业国际交流协会会长王守聪失联已逾半年,协会启动罢免
  • 来伊份一季度净利减少近八成,今年集中精力帮助加盟商成功
  • 证券时报:“好房子”标准即将全面落地,购房者有哪些新期待
  • 圆桌|特朗普上台百日未能结束俄乌冲突,若美国“退出”会发生什么?
  • 深圳宝安区一宗涉宅用地中止出让,起始总价86.27亿元