您现在的位置是:首页 >学无止境 >大数据Doris(五):FE 扩缩容网站首页学无止境

大数据Doris(五):FE 扩缩容

Lansonli 2023-06-19 16:00:02
简介大数据Doris(五):FE 扩缩容

文章目录

FE 扩缩容

一、通过MySQL客户端连接Doris

二、FE Follower扩缩容

1、准备 FE 安装包

2、在 node2 、 node3 上修改 fe.conf 配置文件

3、在 node2 、 node3 上启动 FE

4、添加 FE Follower 到 Doris 集群

三、FE Observer 扩缩容

1、准备 FE 安装包

2、在 node4 、 node5 上修改 fe.conf 配置文件

3、在 node4 、 node5 上启动 FE

4、添加 FE Observer 到 Doris 集群

四、FE扩缩容注意点


FE 扩缩容

FE扩缩容包括FE中Follower的扩缩容和FE中Observer的扩缩容,根据节点划分,这里配置3台Follower(node1~node3)和2台Observer(node4、node5)。

一、通过MySQL客户端连接Doris

Doris 采用 MySQL 协议进行通信,用户可通过 MySQL client 或者 MySQL JDBC连接到 Doris 集群。选择 MySQL client 版本时建议采用5.1 之后的版本,因为 5.1 之前不能支持长度超过 16 个字符的用户名。

给FE进行扩容同样需要通过MySQL客户端来连接Doris FE ,可以在node1节点上下载免安装的MySQL,命令如下:

[root@node1 ~]# cd /software/
[root@node1 ~]# wget https://cdn.mysql.com//archives/mysql-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

也可以在资料中获取"mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz"文件。

下载完成免安装mysql后,进行解压,在bin/目录下可以找打mysql命令行工具,然后执行命令连接Doris即可,具体操作如下:

#解压 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
[root@node1 software]# tar -zxvf ./mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 

#修改名称
[root@node1 software]# mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql-5.7.22-client

#连接Doris
[root@node1 bin]# ./mysql -u root -P9030 -h127.0.0.1

注意:

  1. 连接Doris使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户。关于用户权限设置可以参照官网:https://doris.apache.org/zh-CN/docs/dev/admin-manual/privilege-ldap/user-privilege/
  2. -P 是连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port。
  3. -h 是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用127.0.0.1,这种也是 Doris 提供的如果你忘记 root 密码,可以通过这种方式不需要密码直接连接登录,进行对 root 密码进行重置。
  • 给 root 用户设置密码,操作如下: 
#给当前登录的root用户设置密码为123456
mysql> set password = password('123456');

通过以上设置密码后,再次访问http://node1:8030时,密码需要指定成设置的密码,否则登录不上。

mysql> show frontendsG
*************************** 1. row ***************************
             Name: 192.168.179.4_9010_1675512391847
               IP: 192.168.179.4
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 1228
    LastHeartbeat: 2023-02-04 21:21:23
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: Yes
1 row in set (0.02 sec)

注意:如果 IsMaster、Join 和 Alive 三列均为true,则表示节点正常。

二、FE Follower扩缩容

可以通过将Apache Doris FE扩容至3个以上节点来实现FE的高可用,FE节点的扩容和缩容过程中不影响当前系统的运行。根据前面集群的规划要在node1~node3节点上搭建Apache Doris FE,目前在node1搭建好了FE并启动,该启动的FE自动成为Leader,下面在node2和node3节点配置FE后加入到Apache Doris 集群中,给Doris集群扩容,详细步骤如下:

1、准备 FE 安装包

将node1节点上配置好的FE安装包发送到node2,node3节点上

[root@node1 ~]# cd /software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node2:/software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node3:/software/doris-1.2.1/

发送完成后,在node2、node3节点将"apache-doris-fe/doris-meta/"元数据清空或者重新创建该目录,否则后续启动Follower FE有问题,操作如下:

#node2节点
[root@node2 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

#node3节点
[root@node3 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

2、在 node2 、 node3 上修改 fe.conf 配置文件

这里node2,node3 节点FE配置同node1配置,两台节点中只需要配置/software/doris-1.2.1/apache-doris-fe/conf/fe.conf配置文件中priority_networks 参数为当前节点的ip即可。

# vim /software/doris-1.2.1/apache-doris-fe/conf/fe.conf
...
priority_networks = 192.168.179.5/24 #node2节点
...
...
priority_networks = 192.168.179.6/24 #node3节点
...

3、在 node2 、 node3 上启动 FE

node2、node3节点配置FE完成后,由于是Follower角色,已经存在node1为Leader,所以第一次启动时需要执行如下命令,指定Leader所在节点IP和端口,端口为在fe.conf中edit_log_port配置项,默认为9010。

#node2节点启动FE
[root@node2 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node2 bin]# ./start_fe.sh --helper node1:9010 --daemon

#node3节点启动FE
[root@node3 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node3 bin]# ./start_fe.sh --helper node1:9010 --daemon

注意: --helper 参数仅在 follower  observer 第一次启动时 才需要。

4、添加 FE Follower 到 Doris 集群

在node1中进入mysql客户端,连接到Doris集群,执行如下命令,将node2,node3启动的FE加入到集群中。

#在node1中通过mysql连接doris集群
[root@node1 bin]# ./mysql -u root -P9030 -h127.0.0.1

#执行命令,将FE Follower加入到Doris集群中
mysql> ALTER SYSTEM ADD FOLLOWER "node2:9010";
Query OK, 0 rows affected (0.05 sec)

mysql> ALTER SYSTEM ADD FOLLOWER "node3:9010";
Query OK, 0 rows affected (0.02 sec)

添加完成之后可以访问node1~node3任何一台节点的8030端口登录WebUI,查看对应的FE信息,这里登录http://node1:8030查看FE信息:

也可以通过SQL "show frontendsG"命令来查询集群信息,当加入了更多的FE后,我们可以在node1 mysql 客户端连接到node1~node3的任何一台节点来编写SQL。

#连接node3 FE 编写SQL
[root@node1 bin]# ./mysql -uroot -P9030 -h192.168.179.6 -p123456
mysql> show frontendsG;
*************************** 1. row ***************************
             Name: 192.168.179.4_9010_1675512391847
               IP: 192.168.179.4
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 3038
    LastHeartbeat: 2023-02-06 12:57:40
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: Yes
*************************** 2. row ***************************
             Name: 192.168.179.5_9010_1675659168809
               IP: 192.168.179.5
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 3037
    LastHeartbeat: 2023-02-06 12:57:40
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 3. row ***************************
             Name: 192.168.179.6_9010_1675659173265
               IP: 192.168.179.6
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 3037
    LastHeartbeat: 2023-02-06 12:57:40
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
3 rows in set (0.05 sec)

ERROR: 
No query specified

至此,Apache Doris集群中已经完成3台FE Follower的部署(node1~node3)。

对FE Follower扩容完成后,也可以通过以下命令来进行FE Follower缩容,删除FE Follower节点,需要保证最终剩余的Follower(包括Leader)节点为奇数,这里不再演示FE缩容。如果重新将下线的Follower添加到集群中,要记得清空元数据目录下的文件。

#对FE进行缩容命令
ALTER SYSTEM DROP FOLLOWER "fe_host:edit_log_port";

三、FE Observer 扩缩容

Observer的扩缩容也是基于已有一台FE Leader的前提下进行,这里node1为FE Leader,我们将要在node4,node5节点上配置Observer,Observer配置流程与FE Follower的扩缩容大体一致,步骤如下:

1、准备 FE 安装包

将node1节点上配置好的FE安装包发送到node4,node5节点上

[root@node1 ~]# cd /software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node4:/software/doris-1.2.1/
[root@node1 doris-1.2.1]# scp -r ./apache-doris-fe/ node5:/software/doris-1.2.1/

发送完成后,在node4、node5节点将"apache-doris-fe/doris-meta/"元数据清空或者重新创建该目录,否则后续启动Follower FE有问题,操作如下:

#node4节点清空doris-meta目录
[root@node4 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

#node5节点清空doris-meta目录
[root@node5 ~]# rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

 

2、在 node4 、 node5 上修改 fe.conf 配置文件

这里node4,node5 节点FE配置同node1配置,两台节点中只需要配置/software/doris-1.2.1/apache-doris-fe/conf/fe.conf配置文件中priority_networks 参数为当前节点的ip即可。

# vim /software/doris-1.2.1/apache-doris-fe/conf/fe.conf
...
priority_networks = 192.168.179.7/24 #node4节点
...
...
priority_networks = 192.168.179.8/24 #node5节点
...

3、在 node4 、 node5 上启动 FE

node4、node5节点配置FE完成后,由于是Observer角色,已经存在node1为FE Leader,与添加Follower一样,第一次启动时需要执行如下命令,指定Leader所在节点IP和端口,端口为在fe.conf中edit_log_port配置项,默认为9010。

#node4节点启动FE
[root@node4 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node4 bin]# ./start_fe.sh --helper node1:9010 --daemon

#node5节点启动FE
[root@node5 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node5 bin]# ./start_fe.sh --helper node1:9010 --daemon

注意: --helper 参数仅在 follower  observer 第一次启动时才需要。

4、添加 FE Observer 到 Doris 集群

在node1中进入mysql客户端,连接到Doris集群,执行如下命令,将node4,node5启动的FE加入到集群中。

#在node1中通过mysql连接doris集群
[root@node1 bin]# ./mysql -u root -P9030 -h127.0.0.1

#执行命令,将FE Observer加入到Doris集群中
mysql> ALTER SYSTEM ADD OBSERVER "node4:9010";
Query OK, 0 rows affected (0.05 sec)

mysql> ALTER SYSTEM ADD OBSERVER "node5:9010";
Query OK, 0 rows affected (0.02 sec)

注意:以上添加OBSERVER 操作与添加FOLLOWER操作命令类似,只是添加的角色不同:ALTER SYSTEM ADD FOLLOWER[OBSERVER]"fe_host:edit_log_port"。

添加完成之后可以访问 node1~node5 任何一台节点的8030端口登录WebUI,查看对应的FE信息,这里登录http://node1:8030查看FE信息:

也可以通过SQL "show frontendsG"命令来查询集群信息,当加入了更多的FE后,我们可以在node1 mysql 客户端连接到node1~node5的任何一台节点来编写SQL。 

#连接node5 FE 编写SQL
[root@node1 bin]# ./mysql -uroot -P9030 -h192.168.179.8 -p123456
mysql> show frontendsG;
*************************** 1. row ***************************
             Name: 192.168.179.8_9010_1675670545934
               IP: 192.168.179.8
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: OBSERVER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: false
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: Yes
*************************** 2. row ***************************
             Name: 192.168.179.4_9010_1675512391847
               IP: 192.168.179.4
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6431
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 3. row ***************************
             Name: 192.168.179.5_9010_1675659168809
               IP: 192.168.179.5
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 4. row ***************************
             Name: 192.168.179.6_9010_1675659173265
               IP: 192.168.179.6
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: true
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
*************************** 5. row ***************************
             Name: 192.168.179.7_9010_1675670543490
               IP: 192.168.179.7
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: OBSERVER
         IsMaster: false
        ClusterId: 131295731
             Join: true
            Alive: true
ReplayedJournalId: 6430
    LastHeartbeat: 2023-02-06 16:06:13
         IsHelper: false
           ErrMsg: 
          Version: doris-1.2.1-rc01-Unknown
 CurrentConnected: No
5 rows in set (0.10 sec)

 

至此,Apache Doris集群中已经完成3台FE Follower的部署(node1~node3)、2台Observer的部署(node4、node5)。

对FE Observer扩容完成后,也可以通过以下命令来进行FE Observer缩容,删除FE Observer节点。操作如下:

#将node4、node5 FE Observer进行缩容命令
mysql> ALTER SYSTEM DROP OBSERVER "node4:9010";
mysql> ALTER SYSTEM DROP OBSERVER "node5:9010";

对Observer进行缩容后,再次将对应节点node4、node5加入到Doris FE中就可以按照扩容操作实现。这里只需要将node4、node5节点上"/software/doris-1.2.1/apache-doris-fe/doris-meta"元数据目录清空,启动node4、node5对应的FE进程,然后执行添加命令即可:

#node4节点启动FE
[root@node4 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node4 bin]# ./start_fe.sh --helper node1:9010 --daemon

#node5节点启动FE
[root@node5 ~]# cd /software/doris-1.2.1/apache-doris-fe/bin/
[root@node5 bin]# ./start_fe.sh --helper node1:9010 --daemon

#将node4、node5 FE OBserver 再次加入到Doris集群命令
mysql> ALTER SYSTEM ADD OBSERVER "node4:9010";
mysql> ALTER SYSTEM ADD OBSERVER "node5:9010";

 

四、FE扩缩容注意点

FE 进行扩缩容时需要注意以下几点:

  • Follower FE(包括 Leader)的数量必须为奇数,建议最多部署 3 个组成高可用(HA)模式即可。
  • 当 FE 处于高可用部署时(1个 Leader,2个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力。当然也可以继续增加 Follower FE,但几乎是不必要的。
  • 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下。而通常3个即可满足绝大部分需求。
  • 添加FE 时需要将对应安装包中doris-meta目录清空。
  • helper 不能指向 FE 自身,必须指向一个或多个已存在并且正常运行中的 Master/Follower FE。
  • 删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数。

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。