1. FE 扩容和缩容
可以通过将 FE 扩容至 3 个以上节点来实现 FE 的高可用。
用户可以通过 mysql 客户端登陆 Master FE,通过如下SQL来查看当前 FE 的节点情况:
mysql> SHOW PROC '/frontends';
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
| Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
| 192.168.12.131_9010_1643349986744 | 192.168.12.131 | bigdata1 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | true | 1811137597 | true | true | 2107 | 2022-01-28 18:21:07 | true | | 0.15.0-rc04-Unknown | Yes |
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
1 row in set (0.03 sec)
也可以通过前端页面连接: http://fe_hostname:fe_http_port/frontend 或者 http://fe_hostname:fe_http_port/system?path=//frontends 来查看 FE 节点的情况,如下图所示:
以上方式,都需要 Doris 的 root 用户权限。
FE 节点的扩容和缩容过程,不影响当前系统运行。
1.1. 增加 FE 节点
FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。
第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。添加 Follower 或 Observer。使用 mysql-client 连接到已启动的 FE,并执行:
ALTER SYSTEM ADD FOLLOWER "host:port";
或
ALTER SYSTEM ADD OBSERVER "host:port";
其中 host 为 Follower 或 Observer 所在节点 ip,port 为其配置文件 fe.conf 中的 edit_log_port(默认为 9010 ),如下SQL命令行 和 web页面所示:
mysql> ALTER SYSTEM ADD FOLLOWER "bigdata2:9010";
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER SYSTEM ADD OBSERVER "bigdata3:9010";
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW PROC '/frontends';
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+-------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
| Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+-------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
| 192.168.12.131_9010_1643349986744 | 192.168.12.131 | bigdata1 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | false | 1811137597 | false | true | 2510 | 2022-01-28 18:37:39 | true | | 0.15.0-rc04-Unknown | Yes |
| 192.168.12.132_9010_1643366259739 | 192.168.12.132 | bigdata2 | 9010 | 8030 | 0 | 0 | FOLLOWER | true | 1811137597 | true | false | 0 | NULL | true | | NULL | No |
| 192.168.12.133_9010_1643366260546 | 192.168.12.133 | bigdata3 | 9010 | 8030 | 0 | 0 | OBSERVER | false | 1811137597 | false | false | 0 | NULL | false | | NULL | No |
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+-------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
3 rows in set (0.07 sec)
配置及启动 Follower 或 Observer。Follower 和 Observer 的配置同 Leader 的配置。第一次启动时,需执行以下命令:
./bin/start_fe.sh --helper host:port --daemon
例:
./bin/start_fe.sh --helper bigdata1:9010 --daemon
其中 host 为 Leader 所在节点 ip, port 为 Leader 的配置文件 fe.conf 中的 edit_log_port。--helper 参数仅在 follower 和 observer 第一次启动时才需要。
查看 Follower 或 Observer 运行状态。使用 mysql-client 连接到任一已启动的 FE,并执行:SHOW PROC '/frontends'; 可以查看当前已加入集群的 FE 及其对应角色。
FE 扩容注意事项:
- Follower FE(包括 Leader)的数量必须为奇数,建议最多部署 3 个组成高可用(HA)模式即可。
- 当 FE 处于高可用部署时(1个 Leader,2个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力。当然也可以继续增加 Follower FE,但几乎是不必要的。
- 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下。而通常 3 个即可满足绝大部分需求。
- helper 不能指向 FE 自身,必须指向一个或多个已存在并且正常运行中的 Master/Follower FE。
1.2. 删除 FE 节点
使用以下命令删除对应的 FE 节点:
ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
mysql> ALTER SYSTEM DROP FOLLOWER "bigdata2:9010";
Query OK, 0 rows affected (0.01 sec)
mysql> ALTER SYSTEM DROP OBSERVER "bigdata3:9010";
Query OK, 0 rows affected (0.01 sec)
mysql> SHOW PROC '/frontends';
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+-------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
| Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+-------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
| 192.168.12.131_9010_1643349986744 | 192.168.12.131 | bigdata1 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | false | 1811137597 | false | true | 3297 | 2022-01-28 19:14:13 | true | | 0.15.0-rc04-Unknown | Yes |
+-----------------------------------+----------------+----------+-------------+----------+-----------+---------+----------+----------+------------+-------+-------+-------------------+---------------------+----------+--------+---------------------+------------------+
1 row in set (0.05 sec)
FE 缩容注意事项:
- 删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数。
2. BE 扩容和缩容
用户可以通过 mysql-client 登陆 Leader FE,通过如下命令来查看当前 BE 的节点情况:
mysql> SHOW PROC '/backends';
+-----------+-----------------+----------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+---------------------+--------------------------------------------------------------------------------+
| BackendId | Cluster | IP | HostName | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | ClusterDecommissioned | TabletNum | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | Tag | ErrMsg | Version | Status |
+-----------+-----------------+----------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+---------------------+--------------------------------------------------------------------------------+
| 11001 | default_cluster | 192.168.12.131 | bigdata1 | 9050 | 9060 | 8041 | 8060 | 2022-01-28 14:07:02 | 2022-01-28 19:16:48 | true | false | false | 2 | 701.000 B | 59.928 GB | 99.951 GB | 40.04 % | 40.04 % | {"location" : "default"} | | 0.15.0-rc04-Unknown | {"lastSuccessReportTabletsTime":"2022-01-28 19:16:29","lastStreamLoadTime":-1} |
| 11002 | default_cluster | 192.168.12.132 | bigdata2 | 9050 | 9060 | 8041 | 8060 | 2022-01-28 14:07:03 | 2022-01-28 19:16:48 | true | false | false | 4 | 0.000 | 75.542 GB | 99.951 GB | 24.42 % | 24.42 % | {"location" : "default"} | | 0.15.0-rc04-Unknown | {"lastSuccessReportTabletsTime":"2022-01-28 19:15:54","lastStreamLoadTime":-1} |
| 11003 | default_cluster | 192.168.12.133 | bigdata3 | 9050 | 9060 | 8041 | 8060 | 2022-01-28 14:07:02 | 2022-01-28 19:16:48 | true | false | false | 4 | 698.000 B | 75.528 GB | 99.951 GB | 24.44 % | 24.44 % | {"location" : "default"} | | 0.15.0-rc04-Unknown | {"lastSuccessReportTabletsTime":"2022-01-28 19:16:25","lastStreamLoadTime":-1} |
+-----------+-----------------+----------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+---------------------+--------------------------------------------------------------------------------+
3 rows in set (0.01 sec)
也可以通过前端页面连接:http://fe_hostname:fe_http_port/backend 或者 http://fe_hostname:fe_http_port/system?path=//backends 来查看 BE 节点的情况,如下所示:
以上方式,都需要 Doris 的 root 用户权限。
BE 节点的扩容和缩容过程,不影响当前系统运行以及正在执行的任务,并且不会影响当前系统的性能。数据均衡会自动进行。根据集群现有数据量的大小,集群会在几个小时到1天不等的时间内,恢复到负载均衡的状态。
2.1. 增加 BE 节点
BE 节点的增加方式同 BE 部署 一节中的方式,通过 ALTER SYSTEM ADD BACKEND 命令增加 BE 节点。整体命令如下所示:
ALTER SYSTEM ADD BACKEND "bigdata1:9050";
BE 扩容注意事项:
- BE 扩容后,Doris 会自动根据负载情况,进行数据均衡,期间不影响使用。
2.2. 删除 BE 节点
删除 BE 节点有两种方式:DROP 和 DECOMMISSION
2.2.1. drop语句
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
注意:
DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,会有对应的防误操作提示。
2.2.3. decommission语句
ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
DECOMMISSION 命令说明:
- 1、该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。
- 2、该命令是一个异步操作。执行后,可以通过 SHOW PROC '/backends'; 看到该 BE 节点的 isDecommission 状态为 true。表示该节点正在进行下线。
- 3、该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于 isDecommission 为 true 的状态。
- 4、DECOMMISSION 的进度,可以通过 SHOW PROC '/backends'; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。
- 5、该操作可以通过:
CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡
3. Broker 扩容缩容
Broker 实例的数量没有硬性要求。通常每台物理机部署一个即可。Broker 的添加和删除可以通过以下命令完成:
-- 添加broker
ALTER SYSTEM ADD BROKER broker_name "broker_host:broker_ipc_port";
-- 例:
ALTER SYSTEM ADD BROKER broker_name "bigdata1:8000","bigdata2:8000","bigdata3:8000";
-- 删除指定broker
ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port";
-- 删除所有broker
ALTER SYSTEM DROP ALL BROKER broker_name;
Broker 是无状态的进程,可以随意启停。当然,停止后,正在其上运行的作业会失败,重试即可。
也可以在web页面上查看对应的borker,网址如下: http://bigdata1:8030/System?path=//brokers
参考:
https://yangshibiao.blog.csdn.net/article/details/122734961
https://blog.csdn.net/weixin_59812175/article/details/125299521
网友评论