在介绍这个之前,我们知道Doris 之前是不支持主机名称方式,只能使用 IP 地址,在实际使用中,有的用户因为网络重构或者设备迁移产生了IP地址变更,这个就会引发Doris集群数据不可用。如果我们能通过主机名称,那么就可以避免因为IP地址变更引发的集群不可用数据丢失的问题。
Doris 从 2.0 版本引入的 FQDN的能力,来解决之前的 IP地址不能变更的问题。
本文介绍如何启用基于 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。
Doris 版本一定是2.0 以上版本
Doris 集群所有机器都必须配置主机名称
要在每台机器的hosts文件中配置 IP 和主机名称的映射关系,或者有全集的DNS服务器
IP 地址不能有重复
在你的 fe.conf 文件中打开 FQDN 配置 : enable_fqdn_mode = true
这里我以单机为例来演示,安装 Doris 可以具体参照 Doris 官方文档就行:快速开始 - Apache Doris
首先我们修改本地的 /etc/hosts 文件
127.0.0.1 localhost::1 localhost192.168.31.54 zhangfeng
我的主机名称是:zhangfeng,对应的 IP 地址是:192.168.31.54
如果你是多个节点,这里将每个节点的 IP 地址和主机名称都要配置上,并且将这个文件复制到每个节点上的/etc/hosts文件里。
如果你是DNS方式,请按照DNS的配置方式进行配置
我们在 fe.conf 文件最后加上下面的内容
enable_fqdn_mode = true
然后启动 FE
bin/start_fe.sh --daemon
BE 的配置和启动方式和之前一样,不需要特别的配置,这里使用 FQDN 不是意味着 be 不需要配置 priority_networks 了,这个还是要进行配置,注意的这里配置的 IP 还是要和你的 hosts 主机名称哪个地方的一致,例如我这里的配置
priority_networks = 192.168.31.0/24
配置好之后正常启动 BE 即可
bin/start_be.sh
使用 MySQL 命令行连接 FE
mysql -uroot -P9030 -H127.0.0.1
查看 FE 节点

这里可以看到 host 这里已经是主机名称,不在是之前 IP 地址
添加 BE 节点
alter system add backend "zhangfeng:9050";
注意这里我使用的是主机名称不在是 IP
查看BE节点

这里也可以看到我这边 host 是主机名称而不是 IP
这样集群就构建起来了,我们下面来验证一下我 IP 地址变成不是 192.168.31.54 的看看,会不会有影响。
我将 IP 地址从 54 变更成102,然后我们重新启动集群在看看

这里我将我的hosts文件中的 IP 地址修改成新的

注意:
这里变更 IP 地址需要修改你所有节点的 hosts文件 或者你的 DNS配置
然后重启之后我们在连接上去,可以看到,一切都是正常的

首先我们需要将旧的集群如果不是 2.0 版本的需要先升级到 2.0 以上版本
FE 至少有三台follower才能进行如下操作,否则会造成集群无法正常启动
操作步骤:
逐一对 Follower、Observer 节点进行以下操作(最后操作 Master 节点):
停止节点。
检查节点是否停止。通过 MySQL 客户端执行show frontends,查看该 FE 节点的 Alive 状态直至变为 false
为节点设置 FQDN: ALTER SYSTEM MODIFY FRONTEND "(停掉master后,会选举出新的master节点,用新的master节点来执行sql语句)
修改节点配置。修改 FE 根目录中的conf/fe.conf文件,添加配置:enable_fqdn_mode = true
启动节点。
BE 节点启用 FQDN 只需要通过 MySQL 执行以下命令,不需要对 BE 执行重启操作。
ALTER SYSTEM MODIFY BACKEND "