> 文章列表 > StarRocks集群部署

StarRocks集群部署

StarRocks集群部署

文章目录

    • StarRocks集群部署
      • 准备工作
        • 硬件要求
        • 操作系统
        • 软件要求
        • 系统环境
      • 集群部署
      • 集群监控
      • 集群审计日志采集

StarRocks集群部署

准备工作

分类 描述 说明
硬件要求 集群至少拥有两台物理或虚拟节点BE 节点 CPU 需支持 AVX2 指令集。各节点间需要通过万兆网卡及万兆交换机连接。 FE 节点建议配置 8 核 或以上 CPU,16GB 或以上内存。
BE 节点建议配置 16 核 或以上 CPU,64GB 或以上内存。
通过运行 `cat /proc/cpuinfo
操作系统 Linux kernel 3.10 以上。
软件要求 所有节点需安装 Java Development Kit(1.8 或以上,推荐使用1.8)。客户端节点需安装 MySQL 客户端(5.5 或以上)。
系统环境 集群时钟需保持同步。用户需要有设置 ulimit -n 权限。

硬件要求

BE节点 cat /proc/cpuinfo |grep avx2 命令确认 CPU 是否支持 AVX2 指令集

FE 节点建议配置 8 核 或以上 CPU,16GB 或以上内存。

BE 节点建议配置 16 核 或以上 CPU,64GB 或以上内存。

操作系统

uname -a 命令查看 Linux内核版本,3.10 以上。

cat /etc/redhat-release 命令查看 Linux系统版本,需要是CentOS 7版本。

软件要求

  • 安装java (全部节点)
# 查看系统是否自带java
rpm -qa | grep java# 安装java
yum list java*
yum -y install java-1.8.0-openjdk-develxxx# 设置java 环境变量
vim /etc/profileexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.xxx
export PATH=$PATH:$JAVA_HOME/binsource /etc/profile
  • 安装mysql客户端(在SR集群任意一节点安装)
# 查看是否已存在mariadb
rpm -qa | grep mariadb
# 卸载
rpm -e --nodeps mariadb-libs-xxx# mysql客户端下载地址
https://dev.mysql.com/downloads/mysql/
# 下载mysql客户端
wget https://dev.mysql.com/downloads/file/?id=515636
# 安装ysql客户端
rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm  --nodeps --forcewget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.35-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.35-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.35-1.el7.x86_64.rpmrpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
  • 安装 ntp服务

系统环境

  • 建议关闭交换区,消除交换内存到虚拟内存时对性能的扰动。
# 临时修改,机器重启失效
echo 0 | sudo tee /proc/sys/vm/swappiness# 永久修改,机器重启生效
echo vm.swappiness = 0 >> /etc/sysctl.conf && sysctl -p && swapoff -a
  • 建议使用 Overcommit,将 cat /proc/sys/vm/overcommit_memory 设置为 1
# 临时修改,机器重启失效
echo 1 | sudo tee /proc/sys/vm/overcommit_memory# 永久修改,机器重启生效
echo vm.overcommit_memory = 1 >> /etc/sysctl.conf && sysctl -p && swapoff -a
  • 修改用户最大进程数
cat << EOF |sudo tee -a /etc/security/limits.conf
* soft nproc 655350
* hard nproc 655350
* soft nofile 655350
* hard nofile 655350
* soft core unlimited
* hard core unlimited
* soft memlock unlimited
* hard memlock unlimited
EOF
  • 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
  • 禁用 transparent huge pages(THP)
# 临时禁用
echo  never  >  /sys/kernel/mm/transparent_hugepage/enabled
echo  never  >  /sys/kernel/mm/transparent_hugepage/defrag# 查看
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag# 永久禁用,需重启节点
echo "if test -f /sys/kernel/mm/transparent_hugepage/enabled;then echo never > /sys/kernel/mm/transparent_hugepage/enabled;fi;if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag;fi">> /etc/rc.local
  • 关闭SELINUX
# 查看
getenforce# 临时禁用
setenforce 0# 永久禁用
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  • 高并发配置
# 查看
cat /proc/sys/kernel/threads-max
cat /proc/sys/vm/max_map_count
cat /proc/sys/kernel/pid_max# 临时生效
echo 655350 > /proc/sys/kernel/threads-max
echo 655350  > /proc/sys/vm/max_map_count
echo 655350 > /proc/sys/kernel/pid_max  # 永久生效
echo "kernel.threads-max = 655350" >> /etc/sysctl.conf && sysctl -p
echo "vm.max_map_count = 655350" >> /etc/sysctl.conf && sysctl -p
echo "kernel.pid_max = 655350" >> /etc/sysctl.conf && sysctl -p
  • TCP连接缓冲队列设置
# 临时生效
echo 1 | sudo tee /proc/sys/net/ipv4/tcp_abort_on_overflow
echo 65535 | sudo tee /proc/sys/net/core/somaxconn# 永久生效
echo "net.ipv4.tcp_abort_on_overflow = 1" >> /etc/sysctl.conf && sysctl -p
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf && sysctl -p

集群部署

实例名称 配置要求
FE 16核32GB万兆网卡 及以上(并发不高时可与BE混布)
BE 16核64GB万兆网卡 及以上 CPU必需支持AVX2指令集,磁盘建议SSD或NVME
Broker 无特别要求,通常与BE节点混布,与BE节点数量相同

使用 官方工具 stargo 进行快速部署

  • 生产环境中,推荐将 FE/BE 数据目录(meta 或 storage)和日志目录分盘存储,来保证 IO 及存储空间互不影响。
  • 建议BE独立部署,BE混合部署则 MEM_LIMIT=(机器内存-其他服务占用内存-2G(系统预留))

集群监控

参照 官方监控告警 使用Prometheus + Grafana 进行监控

集群审计日志采集

通过 官方Audit Loader 插件将 SR审计日志同步到 SR 库表 , 审计日志存储在本地文件 fe/log/fe.audit.log 。

plugin.conf max_batch_interval_sec 表示以指定的时间间隔 将审计日志攒批导入至 SR 中

参考

官方推荐参数配置