StarRocks三节点集群部署

系统:Centos7 X86-64

3台服务器部署3个BE服务和3个FE服务,生产环境建议FE节点部署在单独服务器

服务器

服务

192.168.0.221

BE、FE、jdk、Nginx

192.168.0.222

BE、FE、jdk

192.168.0.223

BE、FE、jdk

1. 配置系统参数

a. 编辑/etc/security/limits.conf

在最后面加上下面的内容

* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535

重启连接命令行生效。

b. 关闭Transparent Huge Pages 与 优化部分内核参数

echo never > /sys/kernel/mm/transparent_hugepage/enabled;
chmod +x /etc/rc.d/rc.local;
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >>/etc/rc.d/rc.local;
echo "echo 120000 > /proc/sys/kernel/threads-max" >>/etc/rc.d/rc.local;
echo "echo 655360  > /proc/sys/vm/max_map_count" >>/etc/rc.d/rc.local;
echo "echo 200000 > /proc/sys/kernel/pid_max" >>/etc/rc.d/rc.local;

c. 编辑/etc/sysctl.conf

在最后面加上下面的内容

vm.overcommit_memory=1
vm.swappiness=0
fs.file-max = 6553560
vm.max_map_count=655360
fs.nr_open=20480000
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_abort_on_overflow=1

执行下面的命令生效

sysctl -p

d. 关闭swap

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

e. 关闭防火墙

systemctl stop firewalld.service;
systemctl disable firewalld.service ;
setenforce 0;
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;

2. 安装

将安装需要的文件上传到服务器/opt目录下

2.1安装JDK

在所有服务器执行

a. 解压

cd /opt;
tar -zxvf jdk-8u191-linux-x64.tar.gz -C /opt;

b. 配置环境变量

编辑/etc/profile文件,在文件最后面加上下面的内容,保存

export JAVA_HOME=/opt/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin

执行下面的命令

source /etc/profile;

2.2安装FE服务

a. 解压

在所有服务器执行

cd /opt;
tar -zxvf StarRocks-3.1.2.tar.gz -C /opt;
mv StarRocks-3.1.2 starrocks;

b. 创建元数据目录

在所有服务器执行

mkdir -p /opt/metadata

c. 编辑FE配置文件

/opt/starrocks/fe/conf/fe.conf,配置下面的内容

注意:不同服务器需要将priority_networks的值设置为服务器实际的IP,如:priority_networks = 192.168.0.221/24,可以使用ip addr命令查询ip地址

meta_dir = /opt/metadata
priority_networks = x.x.x.x/x

d.启动Leader 节点

注意:第一个启动的节点为Leader节点,第一个节点执行下面的命令启动

/opt/starrocks/fe/bin/start_fe.sh --daemon

查看是否启动成功

执行下面的命令

cat /opt/starrocks/fe/log/fe.log | grep thrift

如果日志打印以下内容,则说明该 FE 节点启动成功:

"2022-08-10 16:12:29,911 INFO (UNKNOWN x.x.x.x_9010_1660119137253(-1)|1) [FeServer.start():52] thrift server started with port 9020."

e.安装mysql客户端

在FE Leader节点执行下面的命令

cd /opt;
rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm --force --nodeps;

f.连接FE服务

通过 MySQL 客户端连接到 StarRocks。您需要使用初始用户 root 登录,密码默认为空。

将 <fe_address> 替换为 Leader FE 节点的 IP 地址(priority_networks),

并将 <query_port>(默认:9030)替换为您在 fe.conf 中指定的 query_port

示例:如 mysql -h 192.168.0.221 -P9030 -uroot

mysql -h <fe_address> -P<query_port> -uroot

执行以下 SQL 查看 Leader FE 节点状态。

SHOW PROC '/frontends'\G

示例:

[root@localhost opt]# mysql -h 192.168.0.221 -P9030 -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 0
Server version: 5.1.0

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW PROC '/frontends'\G
*************************** 1. row ***************************
             Name: 192.168.0.221_9010_1693906782665
               IP: 192.168.0.221
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: LEADER
        ClusterId: 904464764
             Join: true
            Alive: true
ReplayedJournalId: 659
    LastHeartbeat: 2023-09-05 18:15:55
         IsHelper: true
           ErrMsg: 
        StartTime: 2023-09-05 17:39:51
          Version: 3.1.2-4f3a2ee
1 row in set (0.04 sec)

如果字段 Alive 为 true,说明该 FE 节点正常启动并加入集群。

如果字段 Role 为 FOLLOWER,说明该 FE 节点有资格被选为 Leader FE 节点。

如果字段 Role 为 LEADER,说明该 FE 节点为 Leader FE 节点。

g.将额外的FE节点添加至集群

执行以下 SQL 将额外的 FE 节点添加至集群

注意:将 <new_fe_address> 替换为您需要添加的新 FE 节点的 IP 地址(priority_networks),

并将 <edit_log_port>(默认:9010)替换为您在新 FE 节点的 fe.conf 中指定的 edit_log_port。

示例:ALTER SYSTEM ADD FOLLOWER "192.168.0.222:9010";

ALTER SYSTEM ADD FOLLOWER "192.168.0.223:9010";

ALTER SYSTEM ADD FOLLOWER "<new_fe_address>:<edit_log_port>";

f.启动第2、3个节点

执行下面的命令启动

注意:将 <helper_fe_ip> 替换为 Leader FE 节点的 IP 地址(priority_networks)

并将 <helper_edit_log_port>(默认:9010)替换为 Leader FE 节点的 edit_log_port

示例:/opt/starrocks/fe/bin/start_fe.sh --helper 192.168.0.221:9010 --daemon

/opt/starrocks/fe/bin/start_fe.sh --helper <helper_fe_ip>:<helper_edit_log_port> --daemon

e.查看是否启动成功

执行下面的命令

cat /opt/starrocks/fe/log/fe.log | grep thrift

如果日志打印以下内容,则说明该 FE 节点启动成功:

"2022-08-10 16:12:29,911 INFO (UNKNOWN x.x.x.x_9010_1660119137253(-1)|1) [FeServer.start():52] thrift server started with port 9020."

2.3安装BE服务

a.创建数据存储目录

注意:将 <storage_root_path> 替换为您要创建的数据存储路径。如mkdir -p /data/starrocksdata

mkdir -p <storage_root_path>

b.修改BE配置文件

编辑/opt/starrocks/be/conf/be.conf,配置下面的内容

注意:1.将 <storage_root_path> 替换为您创建的数据存储路径。如:storage_root_path = /data/starrocksdata

2.需要将priority_networks的值设置为服务器实际的IP,如:priority_networks = 192.168.0.221/24

storage_root_path = <storage_root_path>
priority_networks = x.x.x.x/x

c. 启动

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

d. 查看是否启动成功

查看 BE 日志,检查 BE 节点是否启动成功

cat /opt/starrocks/be/log/be.INFO | grep heartbeat

如果日志打印以下内容,则说明该 BE 节点启动成功:

"I0614 17:41:39.782819 3717531 thrift_server.cpp:388] heartbeat has started listening port on 9050"

2.4 BE加入集群

a.安装mysql客户端

执行下面的命令

cd /opt;
rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm --force --nodeps;

b.连接FE服务

通过 MySQL 客户端连接到 StarRocks。您需要使用初始用户 root 登录,密码默认为空。

# 将 <fe_address> 替换为 Leader FE 节点的 IP 地址(priority_networks)或 FQDN,
# 并将 <query_port>(默认:9030)替换为您在 fe.conf 中指定的 query_port。
# 如 mysql -h 192.168.0.221 -P9030 -uroot

mysql -h <fe_address> -P<query_port> -uroot

c. 添加 BE 节点至集群

# 将 <be_address> 替换为 BE 节点的 IP 地址(priority_networks)或 FQDN,
# 并将 <heartbeat_service_port>(默认:9050)替换为您在 be.conf 中指定的 heartbeat_service_port。
#如 ALTER SYSTEM ADD BACKEND "192.168.0.221:9050","192.168.0.222:9050","192.168.0.223:9050";

ALTER SYSTEM ADD BACKEND "<be_address>:<heartbeat_service_port>", "<be2_address>:<heartbeat_service_port>", "<be3_address>:<heartbeat_service_port>";

说明

您可以通过一条 SQL 添加多个 BE 节点。每对 <be_address>:<heartbeat_service_port> 代表一个 BE 节点

执行以下 SQL 查看 BE 节点状态。

SHOW PROC '/backends'\G
  1. 示例:
MySQL [(none)]> SHOW PROC '/backends'\G
*************************** 1. row ***************************
            BackendId: 10007
                   IP: 172.26.195.67
        HeartbeatPort: 9050
               BePort: 9060
             HttpPort: 8040
             BrpcPort: 8060
        LastStartTime: 2023-06-15 15:23:08
        LastHeartbeat: 2023-06-15 15:57:30
                Alive: true
 SystemDecommissioned: false
ClusterDecommissioned: false
            TabletNum: 30
     DataUsedCapacity: 0.000 
        AvailCapacity: 341.965 GB
        TotalCapacity: 1.968 TB
              UsedPct: 83.04 %
       MaxDiskUsedPct: 83.04 %
               ErrMsg: 
              Version: 3.0.0-48f4d81
               Status: {"lastSuccessReportTabletsTime":"2023-06-15 15:57:08"}
    DataTotalCapacity: 341.965 GB
          DataUsedPct: 0.00 %
             CpuCores: 16
    NumRunningQueries: 0
           MemUsedPct: 0.01 %
           CpuUsedPct: 0.0 %

如果字段 Alive 为 true,说明该 BE 节点正常启动并加入集群。

2.5安装Nginx进行负载均衡

Nginx可以部署在FE节点任意一个节点上或者单独一台服务器。

将update_host.sh、nginx_install上传到Nginx服务器/opt目录下

a.配置主机名

在nginx服务器上执行下面的命令将配置主机名,将<feserver*>替换为实际的fe节点的IP地址

示例:export feserver1=192.168.0.221;

export feserver2=192.168.0.222;

export feserver3=192.168.0.223;

cd /opt;
export feserver1=<feserver1>
export feserver2=<feserver2>
export feserver3=<feserver3>

bash update_host.sh;

b.安装nginx

cd /opt/nginx_install;
bash nginx_install.sh;

3.运维

启动

/opt/starrocks/fe/bin/start_fe.sh --daemon

停止 FE 节点

/opt/starrocks/fe/bin/stop_fe.sh --daemon

停止 BE 节点

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

  • 37
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值