Apache Doris (五) :Doris分布式部署(二) FE扩缩容

43 篇文章 29 订阅

目录

1. 通过MySQL客户端连接Doris

​​​​​​​​​​​​​​2. FE Follower扩缩容

​​​​​​​3. FE Observer 扩缩容

​​​​​​​​​​​​​​4. FE扩缩容注意点


进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容!


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

​​​​​​​1. 通过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时,密码需要指定成设置的密码,否则登录不上。

  • 查看Doris FE运行状态:
mysql> show frontends\G
*************************** 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,则表示节点正常。

​​​​​​​​​​​​​​2. 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 frontends\G”命令来查询集群信息,当加入了更多的FE后,我们可以在node1 mysql 客户端连接到node1~node3的任何一台节点来编写SQL。

#连接node3 FE 编写SQL
[root@node1 bin]# ./mysql -uroot -P9030 -h192.168.179.6 -p123456
mysql> show frontends\G;
*************************** 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缩容。

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

注意:如果缩容后再将该节点加入到集群中需要清空元数据目录:rm -rf /software/doris-1.2.1/apache-doris-fe/doris-meta/*

​​​​​​​3. 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 frontends\G”命令来查询集群信息,当加入了更多的FE后,我们可以在node1 mysql 客户端连接到node1~node5的任何一台节点来编写SQL。

#连接node5 FE 编写SQL
[root@node1 bin]# ./mysql -uroot -P9030 -h192.168.179.8 -p123456
mysql> show frontends\G;
*************************** 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";

​​​​​​​​​​​​​​4. FE扩缩容注意点

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT贫道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值