参考官方文档http://doris.apache.org/master/zh-CN/installing/install-deploy.html#扩容缩容
1、现有FE节点
前面博文已经介绍搭建了一个FE节点
代码语言:javascript复制[root@node3 fe]# sh bin/start_fe.sh --daemon
[root@node3 fe]# jps
7234 Jps
7160 PaloFe
[root@node3 fe]#
代码语言:javascript复制[root@node3 fe]# mysql -h10.17.12.160 -P9030 -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.1.0 Doris version 0.12.0-rc03
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MySQL [(none)]> SHOW PROC '/frontends'G
*************************** 1. row ***************************
Name: 192.168.122.1_9010_1628234030903
IP: 192.168.122.1
HostName: 192.168.122.1
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 2007251588
Join: true
Alive: true
ReplayedJournalId: 8078
LastHeartbeat: 2021-08-06 23:11:09
IsHelper: true
ErrMsg:
1 row in set (20.05 sec)
MySQL [(none)]>
2、FE集群介绍
FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。
第一个启动的 FE 自动成为 Leader,上面输出可以看到IsMaster: true
。在此基础上,可以添加若干 Follower 和 Observer。
3、FE集群扩容
(1)使用 mysql-client 连接到已启动的 FE,这一步上面已经完成。
(2)添加 Follower 或 Observer
ALTER SYSTEM ADD FOLLOWER "host:port";
ALTER SYSTEM ADD OBSERVER "host:port";
其中,其中 host 为 Follower 或 Observer 所在节点 ip,port 为其配置文件 fe.conf 中的 edit_log_port,默认值是9010。
操作如下:
代码语言:javascript复制MySQL [(none)]> ALTER SYSTEM ADD FOLLOWER "10.17.12.158:9010";
Query OK, 0 rows affected (0.03 sec)
MySQL [(none)]> ALTER SYSTEM ADD OBSERVER "10.17.12.159:9010";
Query OK, 0 rows affected (0.01 sec)
MySQL [(none)]>
(3)FOLLOWER节点部署
代码语言:javascript复制[root@node1 app]# tar -zxvf apache-doris_apache-doris-0.12.0-incubating-bin.tar.gz
[root@node1 app]# cd apache-doris-0.12.0-incubating-bin/
[root@node1 apache-doris-0.12.0-incubating-bin]# ls
apache_hdfs_broker be fe LICENSE.txt NOTICE.txt quickstart README.md
[root@node1 apache-doris-0.12.0-incubating-bin]# mv fe /app/fe
[root@node1 apache-doris-0.12.0-incubating-bin]# mv be /app/be
[root@node1 apache-doris-0.12.0-incubating-bin]# cd /app/fe
[root@node1 fe]# mkdir doris-meta
[root@node1 fe]# ./bin/start_fe.sh --helper 10.17.12.160:9010 --daemon
./bin/start_fe.sh:行111: /app/fe/log/fe.out: 没有那个文件或目录
./bin/start_fe.sh:行112: /app/fe/log/fe.out: 没有那个文件或目录
[root@node1 fe]# jps
6148 PaloFe
6233 Jps
[root@node1 fe]#
–helper 参数仅在 follower 和 observer 第一次启动时才需要。
(4)OBSERVER节点部署
代码语言:javascript复制[root@node2 app]# tar -zxvf apache-doris_apache-doris-0.12.0-incubating-bin.tar.gz
[root@node2 app]# cd apache-doris-0.12.0-incubating-bin/
[root@node2 apache-doris-0.12.0-incubating-bin]# ls
apache_hdfs_broker be fe LICENSE.txt NOTICE.txt quickstart README.md
[root@node2 apache-doris-0.12.0-incubating-bin]# mv fe /app/fe
[root@node2 apache-doris-0.12.0-incubating-bin]# mv be /app/be
[root@node2 apache-doris-0.12.0-incubating-bin]# cd /app/fe
[root@node2 fe]# mkdir doris-meta
[root@node2 fe]# ./bin/start_fe.sh --helper 10.17.12.160:9010 --daemon
./bin/start_fe.sh:行111: /app/fe/log/fe.out: 没有那个文件或目录
./bin/start_fe.sh:行112: /app/fe/log/fe.out: 没有那个文件或目录
[root@node2 fe]# jps
6148 PaloFe
6233 Jps
[root@node1 fe]#
(5)查看FE集群状态
代码语言:javascript复制MySQL [(none)]> SHOW PROC '/frontends'G
*************************** 1. row ***************************
Name: 10.17.12.159_9010_1628262806951
IP: 10.17.12.159
HostName: node2
EditLogPort: 9010
HttpPort: 8030
QueryPort: 0
RpcPort: 0
Role: OBSERVER
IsMaster: false
ClusterId: 2007251588
Join: false
Alive: false
ReplayedJournalId: 0
LastHeartbeat: N/A
IsHelper: false
ErrMsg: invalid cluster id: 1461718723
*************************** 2. row ***************************
Name: 192.168.122.1_9010_1628234030903
IP: 192.168.122.1
HostName: 192.168.122.1
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 2007251588
Join: true
Alive: true
ReplayedJournalId: 8179
LastHeartbeat: 2021-08-06 23:16:39
IsHelper: true
ErrMsg:
*************************** 3. row ***************************
Name: 10.17.12.158_9010_1628262775800
IP: 10.17.12.158
HostName: node1
EditLogPort: 9010
HttpPort: 8030
QueryPort: 0
RpcPort: 0
Role: FOLLOWER
IsMaster: false
ClusterId: 2007251588
Join: false
Alive: false
ReplayedJournalId: 0
LastHeartbeat: N/A
IsHelper: true
ErrMsg: got exception
3 rows in set (20.05 sec)
MySQL [(none)]>