ALTER SYSTEM
ALTER SYSTEM 用于管理集群中的 FE、BE、CN、Broker 节点和元数据快照。
注意
只有
cluster_admin
角色有权限执行此操作。
语法和参数
FE
-
添加一个 Follower FE。
ALTER SYSTEM ADD FOLLOWER "<fe_host>:<edit_log_port>"[, ...]
您可以通过执行
SHOW PROC '/frontends'\G
来检查新的 Follower FE 的状态。 -
删除一个 Follower FE。
ALTER SYSTEM DROP FOLLOWER "<fe_host>:<edit_log_port>"[, ...]
-
添加一个 Observer FE。
ALTER SYSTEM ADD OBSERVER "<fe_host>:<edit_log_port>"[, ...]
您可以通过执行
SHOW PROC '/frontends'\G
来检查新的 Observer FE 的状态。 -
删除一个 Observer FE。
ALTER SYSTEM DROP OBSERVER "<fe_host>:<edit_log_port>"[, ...]
参数 | 必需 | 描述 |
---|---|---|
fe_host | 是 | FE 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。 |
edit_log_port | 是 | FE 节点的 BDB JE 通信端口。默认值:9010 。 |
BE
-
添加一个 BE 节点。
ALTER SYSTEM ADD BACKEND "<be_host>:<heartbeat_service_port>"[, ...]
您可以通过执行 SHOW BACKENDS 来检查新的 BE 的状态。
-
删除一个 BE 节点。
注意
您无法删除存储单副本表的 Tablet 的 BE 节点。
ALTER SYSTEM DROP BACKEND "<be_host>:<heartbeat_service_port>"[, ...]
-
下线一个 BE 节点。
ALTER SYSTEM DECOMMISSION BACKEND "<be_host>:<heartbeat_service_port>"[, ...]
与删除 BE 节点(强制将其从集群中移除)不同,下线 BE 意味着安全地移除它。这是一个异步操作。当下线 BE 时,BE 上的数据首先迁移到其他 BE,然后将 BE 从集群中移除。数据加载和查询在数据迁移期间不会受到影响。您可以使用 SHOW BACKENDS 检查操作是否成功。如果操作成功,则不会返回已下线的 BE。如果操作失败,BE 仍将在线。您可以使用 CANCEL DECOMMISSION 手动取消操作。
参数 | 必需 | 描述 |
---|---|---|
be_host | 是 | BE 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。 |
heartbeat_service_port | 是 | BE 心跳服务端口。BE 使用此端口从 FE 接收心跳。默认值:9050 。 |
CN
-
添加一个 CN 节点。
ALTER SYSTEM ADD COMPUTE NODE "<cn_host>:<heartbeat_service_port>"[, ...]
您可以通过执行 SHOW COMPUTE NODES 来检查新的 CN 的状态。
-
删除一个 CN 节点。
ALTER SYSTEM DROP COMPUTE NODE "<cn_host>:<heartbeat_service_port>"[, ...]
注意
您无法使用
ALTER SYSTEM DECOMMISSION
命令下线 CN 节点。
参数 | 必需 | 描述 |
---|---|---|
cn_host | 是 | CN 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。 |
heartbeat_service_port | 是 | CN 心跳服务端口。CN 使用此端口从 FE 接收心跳。默认值:9050 。 |
Broker
-
添加 Broker 节点。您可以使用 Broker 节点将数据从 HDFS 或云存储加载到 StarRocks 中。有关更多信息,请参见 加载。
ALTER SYSTEM ADD BROKER <broker_name> "<broker_host>:<broker_ipc_port>"[, ...]
您可以使用一条 SQL 语句添加多个 Broker 节点。每个
<broker_host>:<broker_ipc_port>
对表示一个 Broker 节点。它们共享一个公共broker_name
。您可以通过执行 SHOW BROKER 来检查新 Broker 节点的状态。 -
删除 Broker 节点。
注意
删除 Broker 节点会终止当前在其上运行的任务。
-
删除一个或多个具有相同
broker_name
的 Broker 节点。ALTER SYSTEM DROP BROKER <broker_name> "<broker_host>:<broker_ipc_port>"[, ...]
-
删除所有具有相同
broker_name
的 Broker 节点。ALTER SYSTEM DROP ALL BROKER <broker_name>
参数 | 必需 | 描述 |
---|---|---|
broker_name | 是 | Broker 节点的名称。多个 Broker 节点可以使用相同的名称。 |
broker_host | 是 | Broker 实例的主机名或 IP 地址。如果您的实例有多个 IP 地址,请使用配置项 priority_networks 的值。 |
broker_ipc_port | 是 | Broker 节点上的 thrift 服务器端口。Broker 节点使用它来接收来自 FE 或 BE 的请求。默认值:8000 。 |
创建镜像
创建一个镜像文件。镜像文件是 FE 元数据的快照。
ALTER SYSTEM CREATE IMAGE
创建镜像是在 Leader FE 上的异步操作。您可以在 FE 日志文件 fe.log 中检查操作的开始时间和结束时间。类似 triggering a new checkpoint manually...
的日志表示镜像创建已开始,类似 finished save image...
的日志表示已创建镜像。
使用说明
- 添加和删除 FE、BE、CN 或 Broker 节点是同步操作。您无法取消节点删除操作。
- 您无法在单 FE 集群中删除 FE 节点。
- 您无法在多 FE 集群中直接删除 Leader FE 节点。要删除它,您必须先重新启动它。在 StarRocks 选举出一个新的 Leader FE 后,您可以删除之前的 Leader FE。
- 如果剩余的 BE 节点的数量少于数据副本的数量,则无法删除 BE 节点。例如,如果您的集群中有三个 BE 节点,并且您将数据存储在三个副本中,则无法删除任何 BE 节点。如果您有四个 BE 节点和三个副本,则可以删除一个 BE 节点。
- 删除和下线 BE 节点之间的区别在于,当您删除 BE 节点时,StarRocks 会强制将其从集群中移除,并在移除后生成删除的 Tablet,而当您下线 BE 节点时,StarRocks 首先将下线 BE 节点上的 Tablet 迁移到其他节点,然后移除该节点。
示例
示例 1:添加一个 Follower FE 节点。
ALTER SYSTEM ADD FOLLOWER "x.x.x.x:9010";
示例 2:同时删除两个 Observer FE 节点。
ALTER SYSTEM DROP OBSERVER "x.x.x.x:9010","x.x.x.x:9010";
示例 3:添加一个 BE 节点。
ALTER SYSTEM ADD BACKEND "x.x.x.x:9050";
示例 4:同时删除两个 BE 节点。
ALTER SYSTEM DROP BACKEND "x.x.x.x:9050", "x.x.x.x:9050";
示例 5:同时下线两个 BE 节点。
ALTER SYSTEM DECOMMISSION BACKEND "x.x.x.x:9050", "x.x.x.x:9050";
示例 6:添加两个具有相同 broker_name
- hdfs
的 Broker 节点。
ALTER SYSTEM ADD BROKER hdfs "x.x.x.x:8000", "x.x.x.x:8000";
示例 7:从 amazon_s3
中删除两个 Broker 节点。
ALTER SYSTEM DROP BROKER amazon_s3 "x.x.x.x:8000", "x.x.x.x:8000";
示例 8:删除 amazon_s3
中的所有 Broker 节点。
ALTER SYSTEM DROP ALL BROKER amazon_s3;