生产环境starrocks 3.1存算一体集群部署
集群规划
FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。
BE:节点负责数据存储和 SQL 执行。>3节点。
CN: 无存储功能能的BE。
环境准备
CPU检查 JDK检查
端口检查
FE 端口
8030:FE HTTP Server 端口(http_port)
9020:FE Thrift Server 端口(rpc_port)
9030:FE MySQL Server 端口(query_port)
9010:FE 内部通讯端口(edit_log_port)
BE 端口
在用于 BE 部署的实例上,您需要检查以下端口:
9060:BE Thrift Server 端口(be_port)
8040:BE HTTP Server 端口(be_http_port)
9050:BE 心跳服务端口(heartbeat_service_port)
8060:BE bRPC 端口(brpc_port)
CPU Scaling Governor
echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
ansible sr -m shell -a "echo 'performance' | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor"
SELinux 禁用
ansible sr -m shell -a "sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config"
ansible sr -m shell -a "sed -i 's/SELINUXTYPE/#SELINUXTYPE/' /etc/selinux/config"
# 状态确认
ansible sr -m shell -a "sestatus"
ansible sr -m shell -a "cat /etc/selinux/config"
ulimit 设置
cat >> /etc/security/limits.conf << EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* hard memlock unlimited
* soft memlock unlimited
EOF
cat >> /etc/security/limits.d/20-nproc.conf << EOF
* soft nproc 65535
root soft nproc 65535
EOF
网络配置 设置监听 高并发配 sysctl.conf 统一修改
ansible sr -m shell -a "cat >> /etc/sysctl.conf << EOF
vm.swappiness=0
vm.overcommit_memory=1
vm.max_map_count = 262144
net.core.somaxconn=1024
net.ipv4.tcp_abort_on_overflow=1
EOF"
ansible sr -m shell -a "sysctl -p"
ansible sr -m shell -a "cat /etc/sysctl.conf"
正式部署
数据目录
# FE数据目录
/opt/srfe
# BE 数据目录
mkdir /mnt/sdg1/sr
准备安装包
wget https://releases.starrocks.io/starrocks/StarRocks-3.1.12.tar.gz
tar -xzvf StarRocks-3.1.12.tar.gz
mv StarRocks-3.1.12 sr3112
FE部署
第一步:启动 Leader FE 节点
# 元数据路径
mkdir /opt/srfe_meta
cd /mnt/sdg1/srbe/sr3112
# 修改 FE 配置文件 fe/conf/fe.conf
meta_dir = /opt/srfe_meta
# JAVA_HOME=/mnt/sdg1/sr/sr3112/jdk17
JAVA_HOME=/opt/sr/sr3112/jdk17
./fe/bin/start_fe.sh --daemon
cat fe/log/fe.log | grep thrift
# 停止 FE 节点。
./fe/bin/stop_fe.sh --daemon
第二步:启动 BE 服务
# 创建数据存储路径
mkdir /mnt/sdg1/srdata
# 修改 BE 配置文件 be/conf/be.conf
storage_root_path = /mnt/sdg1/srdata
JAVA_HOME=/mnt/sdg1/sr/sr3112/jdk17
./be/bin/start_be.sh --daemon
cat be/log/be.INFO | grep heartbeat
# 停止 BE 节点。
./be/bin/stop_be.sh --daemon
BE 批量部署
# 文件上传
# ansible sr2 -m copy -a "src=./sr dest=/mnt/sdg1/"
scp -r ./sr 10.10.20.21:/mnt/sdg1/
scp -r ./sr 10.10.20.22:/mnt/sdg1/
scp -r ./sr 10.10.20.23:/mnt/sdg1/
# 启动 & 停止
ansible sr2 -m shell -a "mkdir /mnt/sdg1/srdata"
ansible sr2 -m shell -a "cd /mnt/sdg1/sr/sr3112 && ./be/bin/start_be.sh --daemon"
ansible sr2 -m shell -a "cd /mnt/sdg1/sr/sr3112 && cat be/log/be.INFO | grep heartbeat"
ansible sr2 -m shell -a "cd /mnt/sdg1/sr/sr3112 && ./be/bin/stop_be.sh --daemon"
# 注意这里不能批量启动,得一个个启动,添加
# 扩容 BE 集群。
ALTER SYSTEM ADD backend '10.10.20.21:9050';
ALTER SYSTEM ADD backend '10.10.20.22:9050';
ALTER SYSTEM ADD backend '10.10.20.23:9050';
SHOW PROC '/backends';
部署后设置
# 通过 MySQL 客户端(或navicat)连接 StarRocks 以添加其他 FE 节点
mysql -h 10.10.20.11 -P9030 -uroot
管理初始帐户
# mysql -h <fe_address> -P<query_port> -uroot
mysql -h 10.10.20.11 -P9030 -uroot
SET PASSWORD = PASSWORD('112233)
WEB页面访问
BE 参数查看
http://10.10.20.21:8040/varz