启用 FQDN 访问
本文档介绍如何使用完全限定域名 (FQDN) 启用集群访问。FQDN 是特定实体的**完整域名**,可以通过 Internet 访问。FQDN 由两部分组成:主机名和域名。
在 2.4 版本之前,StarRocks 仅支持通过 IP 地址访问 FE 和 BE。即使使用 FQDN 将节点添加到集群,最终也会转换为 IP 地址。这给 DBA 带来了很大的不便,因为更改 StarRocks 集群中某些节点的 IP 地址可能会导致节点访问失败。在 2.4 版本中,StarRocks 将每个节点与其 IP 地址解耦。现在,您可以仅通过 FQDN 管理 StarRocks 中的节点。
前提条件
要为 StarRocks 集群启用 FQDN 访问,请确保满足以下要求
-
集群中的每台机器都必须有一个主机名。
-
在每台机器上的 **`/etc/hosts`** 文件中,您必须指定集群中其他机器的相应 IP 地址和 FQDN。
-
**`/etc/hosts`** 文件中的 IP 地址必须是唯一的。
使用 FQDN 搭建新集群
默认情况下,新集群中的 FE 节点通过 IP 地址访问启动。要使用 FQDN 启动新集群,您必须在**首次启动集群时**运行以下命令来启动 FE 节点
./bin/start_fe.sh --host_type FQDN --daemon
属性 --host_type
指定用于启动节点的访问方法。有效值包括 FQDN
和 IP
。您只需在首次启动节点时指定此属性一次。
每个 BE 节点都使用 FE 元数据中定义的 BE Address
来标识自己。因此,启动 BE 节点时,您**无需**指定 --host_type
。如果 BE Address
定义了带有 FQDN 的 BE 节点,则 BE 节点将使用此 FQDN 标识自己。
在现有集群中启用 FQDN 访问
要在以前通过 IP 地址启动的现有集群中启用 FQDN 访问,您必须首先**升级** StarRocks 到 2.4.0 或更高版本。
为 FE 节点启用 FQDN 访问
在为 Leader FE 节点启用 FQDN 访问之前,您需要为所有非 Leader Follower FE 节点启用 FQDN 访问。
注意
在为 FE 节点启用 FQDN 访问之前,请确保集群至少有三个 Follower FE 节点。
为非 Leader Follower FE 节点启用 FQDN 访问
-
导航到 FE 节点的部署目录,然后运行以下命令停止 FE 节点
./bin/stop_fe.sh
-
通过您的 MySQL 客户端执行以下语句以检查您已停止的 FE 节点的
Alive
状态。等待Alive
状态变为false
。SHOW PROC '/frontends'\G
-
执行以下语句以将 IP 地址替换为 FQDN。
ALTER SYSTEM MODIFY FRONTEND HOST "<fe_ip>" TO "<fe_hostname>";
-
运行以下命令以使用 FQDN 访问启动 FE 节点。
./bin/start_fe.sh --host_type FQDN --daemon
属性
--host_type
指定用于启动节点的访问方法。有效值包括FQDN
和IP
。您只需在修改节点后重新启动节点时指定此属性一次。 -
检查 FE 节点的
Alive
状态。等待Alive
状态变为true
。SHOW PROC '/frontends'\G
-
当当前 FE 节点的
Alive
状态为true
时,重复上述步骤以依次为其他非 Leader Follower FE 节点启用 FQDN 访问。
为 Leader FE 节点启用 FQDN 访问
在所有非 Leader FE 节点都已成功修改和重新启动后,您现在可以为 Leader FE 节点启用 FQDN 访问。
注意
在启用 FQDN 访问的 Leader FE 节点之前,用于将节点添加到集群的 FQDN 仍然会转换为相应的 IP 地址。在为集群选择启用 FQDN 访问的 Leader FE 节点后,FQDN 将不会转换为 IP 地址。
-
导航到 Leader FE 节点的部署目录,然后运行以下命令停止 Leader FE 节点。
./bin/stop_fe.sh
-
通过您的 MySQL 客户端执行以下语句以检查是否已为集群选择新的 Leader FE 节点。
SHOW PROC '/frontends'\G
任何状态为
Alive
且isMaster
为true
的 FE 节点都是正在运行的 Leader FE。 -
执行以下语句以将 IP 地址替换为 FQDN。
ALTER SYSTEM MODIFY FRONTEND HOST "<fe_ip>" TO "<fe_hostname>";
-
运行以下命令以使用 FQDN 访问启动 FE 节点。
./bin/start_fe.sh --host_type FQDN --daemon
属性
--host_type
指定用于启动节点的访问方法。有效值包括FQDN
和IP
。您只需在修改节点后重新启动节点时指定此属性一次。 -
检查 FE 节点的
Alive
状态。SHOW PROC '/frontends'\G
如果 Alive
状态变为 true
,则表示 FE 节点已成功修改并作为 Follower FE 节点添加到集群。
为 BE 节点启用 FQDN 访问
通过您的 MySQL 客户端执行以下语句以将 IP 地址替换为 FQDN,从而为 BE 节点启用 FQDN 访问。
ALTER SYSTEM MODIFY BACKEND HOST "<be_ip>" TO "<be_hostname>";
注意
启用 FQDN 访问后,您**无需**重新启动 BE 节点。
回滚
要将已启用 FQDN 访问的 StarRocks 集群回滚到不支持 FQDN 访问的早期版本,您必须首先为集群中的所有节点启用 IP 地址访问。您可以参考在现有集群中启用 FQDN 访问的通用指南,只需将 SQL 命令更改为以下命令即可
- 为 FE 节点启用 IP 地址访问
ALTER SYSTEM MODIFY FRONTEND HOST "<fe_hostname>" TO "<fe_ip>";
- 为 BE 节点启用 IP 地址访问
ALTER SYSTEM MODIFY BACKEND HOST "<be_hostname>" TO "<be_ip>";
修改将在您的集群成功重新启动后生效。
常见问题
问:当我为 FE 节点启用 FQDN 访问时发生错误:“required 1 replica. But none were active with this master”。我该怎么办?
答:在为 FE 节点启用 FQDN 访问之前,请确保集群至少有三个 Follower FE 节点。
问:是否可以使用 IP 地址将新节点添加到已启用 FQDN 访问的集群?
答:可以。