暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

0029.S StarRocks单实例扩容FE、BE、Broker过程

rundba 2022-05-23
3558


前期最小化部署了StarRocks,单台主机sr01上运行FE、BE,本次扩容2节点sr02、sr03,sr02上分别增加FE、BE,sr03上增加BE、Broker。




前述最小化单机部署,请移步:

0025.S StarRocks单实例部署(1/2)

https://mp.weixin.qq.com/s/6hdG6r2-fZ_msSQbq-KPZw



0026.D StarRocks单实例部署(2/2)

https://mp.weixin.qq.com/s/FPw8lBJle9pxaBWqyGyspQ





0.ENV


0.1 基本配置

1) 硬件情况

服务器硬件(虚拟机3台,后续两台做扩容):

  • CPU:4C

  • 内存:8G

  • 硬盘:sda 300G, sdb 300G,单独挂载在doridb目录下。


2) 软件清单

  • CentOS:7.7.1908

  • StarRocks-2.2.0.tar.gz

  • jdk-8u281-linux-x64.tar.gz

  • mysql-5.7.33-el7-x86_64.tar.gz


0.2 组件清单-角色划分

  • hosts ROLE

  • sr01 FE Leader/BE [部署完成]

  • sr02 FE OBSERVER/BE [本次扩容]

  • sr03 Broker/BE [本次扩容]


  • sr01上部署FE FOLLOWER使其成为Leader,同时部署BE[已完成];

  • sr02上部署FE令其作为OBSERVERr,同时部署BE[本次扩容节点];

  • sr03部署一个Broker方便后面学习数据导入,同时部署BE[本次扩容节点]。


有关StarRocks架构详细介绍,详见上篇文章《StarRocks简介》章节"3. 架构介绍"。

https://mp.weixin.qq.com/s/PaqZ-9yM2FFs-cF7Cr7fPA


0.3 步骤说明

  • 步骤1-8为扩容前期准备

  • 步骤9-13为扩容过程



1. 主机名配置


系统安装(略)

1) 主机名设置[sr02-03]

    hostnamectl set-hostname sr02
    hostnamectl set-hostname sr03


    2) 增加hosts解析[sr01-03]

      echo "192.168.80.31 sr01" >> /etc/hosts
      echo "192.168.80.32 sr02" >> /etc/hosts
      echo "192.168.80.33 sr03" >> /etc/hosts



      2. 关闭Swap分区[sr02-03]


      内存页(page)swap到磁盘会影响sr的性能,需要关闭。

      2.1 临时关闭

        free -h
        swapoff -a
        free -h


        2.2 永久关闭

        1) 注释掉/etc/fstab中的swap信息

        注释swap

          sed -i 's/\/dev\/mapper\/centos-swap/#\/dev\/mapper\/centos-swap/g' etc/fstab


          查看注释结果

            grep swap etc/fstab
            #/dev/mapper/centos-swap swap swap defaults 0 0


            2) 调整swappiness参数

              echo vm.swappiness=0 >> /etc/sysctl.conf


              3) 重启生效

              当前已临时关闭,不需要要重启

                reboot


                4)验证(Swap行均为0)

                  free -h



                  3. 关闭操作系统selinux[sr02-03]


                  查看selinux状态

                    getenforce


                    临时关闭

                      setenforce 0


                      永久关闭状态-需重启,临时关闭后不需要重启

                        sed -i 's/=enforcing/=disabled/g' etc/selinux/config



                        4. 关闭操作系统防火墙[sr02-03]


                        安装期间避免端口不能访问而导致的异常,可以关闭防火墙,详见4.1,也可以打开sr对应防火墙端口,详见4.2。

                        4.1 关闭防火墙操作

                        firewall[CentOS7/8]

                          systemctl status firewalld
                          systemctl stop firewalld
                          systemctl disable firewalld


                          iptables[CentOS5/6]

                            chkconfig iptables off
                            service iptables status
                            service iptables stop


                            4.2 开放防火墙端口

                            1) sr标准版端口

                            8000、8030、8040、8060、9010、9020、9030、9050、9060


                            2) 逐个开放端口

                              firewall-cmd --zone=public --add-port=8000/tcp --permanent
                              firewall-cmd --zone=public --add-port=8030/tcp --permanent
                              firewall-cmd --zone=public --add-port=8040/tcp --permanent
                              firewall-cmd --zone=public --add-port=8060/tcp --permanent
                              firewall-cmd --zone=public --add-port=9010/tcp --permanent
                              firewall-cmd --zone=public --add-port=9020/tcp --permanent
                              firewall-cmd --zone=public --add-port=9030/tcp --permanent
                              firewall-cmd --zone=public --add-port=9050/tcp --permanent
                              firewall-cmd --zone=public --add-port=9060/tcp --permanent


                              关闭端口参考

                                firewall-cmd --zone=public --remove-port=8000/tcp --permanent


                                3) 配置立即生效

                                  firewall-cmd --reload


                                  4) 查看所有开放端口

                                    firewall-cmd --zone=public --list-ports



                                    5. 主机时间同步[sr02-03]


                                    单实例FE、BE时,不涉及各节点时间同步,为了和其它业务系统进行交互,建议设置ntp。

                                    注:在sr集群中,FE所在服务器的时钟最多允许5秒时钟偏差,需要进行时间同步。

                                    1) 安装ntp

                                      yum -y install ntp


                                      2) 校准时间

                                        ntpdate cn.pool.ntp.org


                                        3) 使用crontab定时计划任务

                                          crontab -e
                                          00 12 * * * sbin/ntpdate cn.pool.ntp.org

                                          [表示每隔12个小时同步一次。规则:分、时、日、月、星期]


                                          4) 重启crontab计划任务

                                            systemctl reload crond


                                            5) 查看时间

                                            查看时间,确保3个节点时间同步正常,相差不超过5秒,否则集群配置失败。

                                              date



                                              6. 设置文件描述符限制[sr02-03]


                                              文件描述符限制过小会导致sr BE启动报错,永久设置操作如下:

                                              1) 修改limits.conf

                                              修改

                                                echo "* soft nofile 65536" >> /etc/security/limits.conf
                                                echo "* hard nofile 65536" >> /etc/security/limits.conf


                                                查看

                                                  cat etc/security/limits.conf


                                                  2) 查看更改生效-需要重新登录会话

                                                    ulimit -n



                                                    7. 配置GCC环境[sr02-03]


                                                    sr要求GCC 4.8.2+

                                                    1) 各主机安装gcc

                                                      yum -y install gcc


                                                      2) 查看安装后版本

                                                        gcc --version
                                                        ...
                                                        sr01 | CHANGED | rc=0 >>
                                                        gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) #当前4.8.5,gcc4.8.2以上均可
                                                        Copyright (C) 2015 Free Software Foundation, Inc.
                                                        This is free software; see the source for copying conditions. There is NO
                                                        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
                                                        ...



                                                        8. 安装配置JDK8[sr02-03]


                                                        8.1 安装包准备

                                                        jdk8官网下载链接如下:

                                                          https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html

                                                          下载版本:jdk-8u281-linux-x64.tar.gz


                                                          8.2 检查并移除自带jdk

                                                          查看CentOS是否自带openjdk环境:

                                                            yum list installed |grep java


                                                            若有自带安装的JDK,卸载命令:

                                                              yum -y remove java-1.7.0-openjdk*
                                                              yum -y remove java-1.8.0-openjdk*


                                                              8.3 安装

                                                              1) 创建安装目录

                                                                mkdir usr/java


                                                                2) 解压jdk安装包

                                                                  tar -zxvf soft/jdk-8u281-linux-x64.tar.gz -C usr/java/


                                                                  3) 配置环境变量

                                                                  配置sr01主机/etc/profile

                                                                    cat >> etc/profile << RUNDBA
                                                                    ##### jdk enviroument #####
                                                                    export JAVA_HOME=/usr/java/jdk1.8.0_281
                                                                    export PATH=\$JAVA_HOME/bin:\$PATH
                                                                    export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
                                                                    ##############################
                                                                    RUNDBA


                                                                    4) 查看java版本

                                                                    当前java版本均为1.8.0_281

                                                                      /usr/java/jdk1.8.0_281/bin/java -version

                                                                      此时单机sr02、sr03准备完成,下面进行扩容。



                                                                      9. sr02部署操作


                                                                      1) 解压部署包

                                                                        tar -zxvf soft/StarRocks-2.2.0.tar.gz


                                                                        2) 新建/starrocks及fe、be文件夹

                                                                          cd ~
                                                                          mkdir -p starrocks/fe
                                                                          mkdir -p starrocks/be


                                                                          3) 移动StarRocks-2.2.0文件夹下fe文件夹和be文件夹到starrocks对应目录

                                                                            mv StarRocks-2.2.0/fe/* starrocks/fe
                                                                            mv StarRocks-2.2.0/be/* starrocks/be


                                                                            4) 在fe.conf中绑定ip

                                                                            因为虚拟机网卡通常有多个ip,在fe.conf中绑定ip:

                                                                              vim starrocks/fe/conf/fe.conf
                                                                              ...
                                                                              # priority_networks = 10.10.10.0/24;192.168.0.0/16
                                                                              priority_networks = 192.168.80.32/24


                                                                              5) 在be.conf中绑定ip

                                                                                vim starrocks/be/conf/be.conf
                                                                                ...
                                                                                # priority_networks = 10.10.10.0/24;192.168.0.0/16
                                                                                priority_networks = 192.168.80.32/24


                                                                                6) 在fe目录中创建元数据目录

                                                                                  mkdir -p starrocks/fe/doris-meta


                                                                                  7) 在sr02启动

                                                                                  因为sr1上已有启动的fe,sr02的fe是作为observer。sr02的fe首次启动时需要指定sr中的sr1作为helper(仅首次需要):

                                                                                    [root@sr02 ~]# starrocks/fe/bin/start_fe.sh --helper 192.168.80.31:9010 --daemon
                                                                                    /starrocks/fe/bin/start_fe.sh: line 82: /starrocks/fe/log/fe.out: No such file or directory
                                                                                    /starrocks/fe/bin/start_fe.sh: line 83: /starrocks/fe/log/fe.out: No such file or directory


                                                                                    8) 在sr01主机将sr02中fe的节点至集群

                                                                                    回到sr1服务器,使用sql命令添加sr02中fe的节点至集群,按照咱们的规划,将sr02的fe作为observer,sql为:

                                                                                      ALTER SYSTEM ADD OBSERVER "192.168.80.32:9010";


                                                                                      执行完毕后再次执行下面语句来查看fe集群状态:

                                                                                        mysql> SHOW PROC '/frontends';
                                                                                        +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+
                                                                                        | Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg |
                                                                                        +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+
                                                                                        | 192.168.80.32_9010_1619451569642 | 192.168.80.32 | sr02 | 9010 | 8030 | 9030 | 9020 | OBSERVER | false | 179399337 | true | true | 2215 | 2021-04-26 23:39:43 | false | |
                                                                                        | 192.168.80.31_9010_1619276424491 | 192.168.80.31 | sr01 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | true | 179399337 | true | true | 2216 | 2021-04-26 23:39:43 | true | |
                                                                                        +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+
                                                                                        2 rows in set (0.03 sec)


                                                                                        查看信息,Role: OBSERVER ,Alive:ture,证明sr02中的节点作为OBSERVER已添加成功。


                                                                                        FE已经扩容完毕,大家可以发现,扩容实际上和安装过程相同。

                                                                                        该节点BE后续进行扩容。



                                                                                        10. 对sr03部署操作


                                                                                        1) 解压部署包

                                                                                          tar -zxvf soft/StarRocks-2.2.0.tar.gz


                                                                                          2) 根目录下新建starrocks及be、apache_hdfs_broker文件夹

                                                                                            cd ~
                                                                                            mkdir -p starrocks/be
                                                                                            mkdir -p /starrocks/apache_hdfs_broker


                                                                                            3) 移动StarRocks-2.2.0文件夹下be文件夹和apache_hdfs_broker文件夹到starrocks对应目录

                                                                                              mv StarRocks-2.2.0/be/* /starrocks/be
                                                                                              mv StarRocks-2.2.0/apache_hdfs_broker/* /starrocks/apache_hdfs_broker


                                                                                              4) 分别绑定be和broker的IP

                                                                                              在be.conf中绑定ip

                                                                                                vim /starrocks/be/conf/be.conf

                                                                                                配置为:

                                                                                                  ...
                                                                                                  # priority_networks = 10.10.10.0/24;192.168.0.0/16
                                                                                                  priority_networks = 192.168.80.33/24


                                                                                                  5) broker配置文件apache_hdfs_broker.conf中绑定IP

                                                                                                    vim /starrocks/apache_hdfs_broker/conf/apache_hdfs_broker.conf  #新增网络配置
                                                                                                    ...
                                                                                                    priority_networks = 192.168.80.33/24



                                                                                                    11. 启动sr02主机be并加入集群


                                                                                                    在sr02先创建数据存放目录

                                                                                                      mkdir -p /starrocks/be/storage


                                                                                                      启动be:

                                                                                                        /starrocks/be/bin/start_be.sh --daemon


                                                                                                        回到sr01,使用sql,将sr02的be加入集群:

                                                                                                          mysql> ALTER SYSTEM ADD BACKEND "192.168.80.32:9050";
                                                                                                          Query OK, 0 rows affected (0.01 sec)


                                                                                                          同样,用命令查询状态:

                                                                                                            mysql> SHOW PROC '/backends'\G
                                                                                                            *************************** 1. row ***************************
                                                                                                            BackendId: 10002
                                                                                                            Cluster: default_cluster
                                                                                                            IP: 192.168.80.31
                                                                                                            HostName: sr01
                                                                                                            HeartbeatPort: 9050
                                                                                                            BePort: 9060
                                                                                                            HttpPort: 8040
                                                                                                            BrpcPort: 8060
                                                                                                            LastStartTime: 2021-04-24 23:04:35
                                                                                                            LastHeartbeat: 2021-04-26 23:46:54
                                                                                                            Alive: true
                                                                                                            SystemDecommissioned: false
                                                                                                            ClusterDecommissioned: false
                                                                                                            TabletNum: 10
                                                                                                            DataUsedCapacity: 3.534 KB
                                                                                                            AvailCapacity: 297.736 GB
                                                                                                            TotalCapacity: 299.850 GB
                                                                                                            UsedPct: 0.70 %
                                                                                                            MaxDiskUsedPct: 0.70 %
                                                                                                            ErrMsg:
                                                                                                            Version: 1.14.5-8c4257e
                                                                                                            Status: {"lastSuccessReportTabletsTime":"2021-04-26 23:46:00"}
                                                                                                            *************************** 2. row ***************************
                                                                                                            BackendId: 11025
                                                                                                            Cluster: default_cluster
                                                                                                            IP: 192.168.80.32
                                                                                                            HostName: sr02
                                                                                                            HeartbeatPort: 9050
                                                                                                            BePort: 9060
                                                                                                            HttpPort: 8040
                                                                                                            BrpcPort: 8060
                                                                                                            LastStartTime: 2021-04-26 23:46:49
                                                                                                            LastHeartbeat: 2021-04-26 23:46:54
                                                                                                            Alive: true
                                                                                                            SystemDecommissioned: false
                                                                                                            ClusterDecommissioned: false
                                                                                                            TabletNum: 5
                                                                                                            DataUsedCapacity: .000
                                                                                                            AvailCapacity: 297.807 GB
                                                                                                            TotalCapacity: 299.850 GB
                                                                                                            UsedPct: 0.68 %
                                                                                                            MaxDiskUsedPct: 0.68 %
                                                                                                            ErrMsg:
                                                                                                            Version: 1.14.5-8c4257e
                                                                                                            Status: {"lastSuccessReportTabletsTime":"2021-04-26 23:46:49"}
                                                                                                            2 rows in set (0.01 sec)



                                                                                                            12. 启动sr03主机be并并加入集群


                                                                                                            转到sr03服务器,先创建数据存放目录:

                                                                                                              mkdir -p /starrocks/be/storage


                                                                                                              启动be:

                                                                                                                /starrocks/be/bin/start_be.sh --daemon


                                                                                                                回到sr01,使用sql,将sr03的be加入集群:

                                                                                                                  mysql> ALTER SYSTEM ADD BACKEND "192.168.80.33:9050";
                                                                                                                  Query OK, 0 rows affected (0.00 sec)


                                                                                                                  继续,用命令查询状态:

                                                                                                                    mysql> SHOW PROC '/backends'\G
                                                                                                                    ...(略)

                                                                                                                    sr03状态,alive:true即为成功加入集群。


                                                                                                                    扩容后,be数据会从节点1分散到其它节点。

                                                                                                                      [root@sr02 ~]# ls /starrocks/be/storage/data/
                                                                                                                      0 1 2 3 4



                                                                                                                      13. 启动sr03主机broker


                                                                                                                      再转到sr03,启动broker。

                                                                                                                        /starrocks/apache_hdfs_broker/bin/start_broker.sh --daemon


                                                                                                                        回到sr01,输入sql将broker加入集群,假设sr03服务器的broker随意命名为broker3

                                                                                                                          mysql> ALTER SYSTEM ADD BROKER broker3 "192.168.80.33:8000";
                                                                                                                          Query OK, 0 rows affected (0.01 sec)


                                                                                                                          输入sql查看broker状态:

                                                                                                                            mysql> SHOW PROC "/brokers"\G
                                                                                                                            *************************** 1. row ***************************
                                                                                                                            Name: broker3
                                                                                                                            IP: 192.168.80.33
                                                                                                                            Port: 8000
                                                                                                                            Alive: true
                                                                                                                            LastStartTime: 2021-04-26 23:50:59
                                                                                                                            LastUpdateTime: 2021-04-26 23:51:09
                                                                                                                            ErrMsg:
                                                                                                                            1 row in set (0.00 sec)


                                                                                                                            当前brokers3,Alive: true说明正常。



                                                                                                                            14. 小结


                                                                                                                                  前期最小化部署了StarRocks,单台主机sr01上运行FE、BE,本次在sr02上扩容FE、BE,sr03上扩容BE,增加Broker,其实扩容和新建完全相同,be扩容后,数据会均匀分散到每个BE。

                                                                                                                            —END—



                                                                                                                            文章转载自rundba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                                                                            评论