第1.2章:StarRocks部署--部署环境准备

本文详细介绍了StarRocks集群的硬件推荐、环境校验与准备,包括CPU、操作系统、服务器IP配置、集群时间同步、文件打开数限制、时区设置、防火墙端口配置以及JDK和mysql-client的安装。强调了必须支持AVX2的CPU、Linux CentOS 7及以上版本、固定IP、时钟同步和文件打开数限制的重要性,以及OpenJDK和mysql-client的安装步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 集群硬件推荐

StarRocks对服务器配置的基础要求不高,测试环境2核4G内存下也能够正常进行一些小数据规模的查询。在生产环境下或者我们比较关注性能时,StarRocks各实例推荐的硬件配置为:

实例名称

配置要求

FE

8核16GB万兆网卡 及以上(并发不高时可与BE混布)

BE

16核64GB万兆网卡 及以上 CPU必需支持AVX2指令集

Broker

无特别要求,通常与BE节点混布,与BE节点数量相同

为保证集群性能及数据安全性,我们建议生产环境最少使用三台1632G万兆网卡的服务器。假设node01、node02、node03均为符合要求的服务器,生产环境最小部署架构示例:

 

其中,node01部署一个FE作为Leader,node02部署一个FE Observer提供元数据备份。集群三个节点各部署一个BE,可保证生产环境数据使用StarRocks默认的三副本存储(测试环境可以使用单副本)。

在node01上我们还可以安装mysql-client。StarRocks兼容MySQL协议,推荐使用mysql-client进行访问,也可以使用SQLyog、DBeaver、Navicat、Datagrip等图形化工具,将StarRocks视为MySQL进行连接访问。

特别注意,一台机器上只可以部署该集群的单个FE实例,因为同一集群中所有FE实例的http_port需要相同。

此外,虽然一台机器上可以错开端口部署多个BE实例,但如果需要3副本数据,那么至少需要3台机器各部署一个BE实例,这是因为StarRocks的副本均衡策略不会将同一个Tablet的副本部署在同一个IP的BE上。

1.2 集群环境校验及准备

在了解了StarRocks集群所需的硬件配置后,我们还需要对集群服务器进行必要的环境校验及系统调优。StarRocks的运行环境准备可简单分为“必需类”与“优化类”两大类。在集群部署前建议结合情况完成下文列出的全部准备工作,因为“优化类”配置对StarRocks性能也会有一定的影响。

1.2.1 必需类准备

1.2.1.1 CPU检查

StarRocks的向量化技术需要CPU的AVX2指令集支持才能发挥效果,所以部署BE服务的机器CPU必需支持AVX2指令集。在Linux中,使用如下命令检查CPU是否支持:

[root@node01 ~]# cat /proc/cpuinfo | grep avx2

flags                   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt arat

有结果输出即表明CPU支持。如果无输出,则需要更换支持AVX2的机器。部分情况下,我们会在Windows系统下使用虚拟机安装CentOS作为测试环境,此时我们可以使用CPU-Z、AIDA64等工具在Windows下检查宿主机CPU的指令集支持情况

1.2.1.2 操作系统检查

StarRocks要求系统为Linux CentOS 7及以上版本(下文演示使用CentOS 7.6),内核版本建议在3.10以上,查看系统及内核信息:

[root@node01 ~]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

[root@node01 ~]# uname -a

Linux node01 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
————————————————
版权声明:本文为CSDN博主「流木随风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ult_me/article/details/121493170

1.2.1.3 服务器IP配置

在部署FE或BE实例时,为了避免服务器多网卡情况下StarRocks无法准确判断出需要使用的IP,我们会在各实例配置文件中使用priority_networks参数绑定IP。

同时,由于当前StarRocks运行时会将集群内各实例绑定的IP等信息存储于本地目录中,若服务器节点内网IP改变,集群实例将无法正常运行(或需要通过较为繁琐的元数据恢复等操作进行处理),故运行StarRocks的服务器IP(内网)需要是固定的。服务器系统配置为固定IP操作见附录一:服务器配置固定IP。

1.2.1.4 集群校时

集群内各FE实例所在服务器最多允许5秒的时钟偏差,可使用NTP协议同步网络时间或进行集群内部校时。具体校时操作见附录二:集群时间同步

1.2.1.5 修改打开文件数限制

当打开文件数限制过小时,BE实例可能无法正常启动,使用ulimit -n查看文件打开文件数限制:

[root@node01 ~]# ulimit -n

1024

若返回值<65535,则需要修改/etc/security/limits.conf:

[root@node01 ~]# vi /etc/security/limits.conf

在末尾加入配置(表示:所有用户所有组,软限制和硬限制,对文件打开数,设为65535):

* soft nofile 65535

* hard nofile 65535

修改后需要断开远程工具(如Xshell等)后重新连接方可生效,或者,直接再临时修改一次,使用:

[root@node01 ~]# ulimit -n 65535

确认生效:

[root@node01 ~]# ulimit -n

65535

1.2.1.6 检查时区

为避免带有时间戳的数据在数据导入过程中出现时差问题,我们需要检查设置系统时区为Asia/Shanghai:

查看时区:

[root@node01 ~]# timedatectl

Local time: Tue 2021-09-07 19:31:28 CST

Universal time: Tue 2021-09-07 11:31:28 UTC

RTC time: Tue 2021-09-07 11:31:29

Time zone: Asia/Shanghai (CST, +0800)

NTP enabled: yes

NTP synchronized: yes

RTC in local TZ: no

DST active: n/a
————————————————
版权声明:本文为CSDN博主「流木随风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ult_me/article/details/121493170

若时区不为Asia/Shanghai,设置命令:

[root@node01 ~]# timedatectl set-timezone Asia/Shanghai

1.2.1.7 配置防火墙

[root@node01 ~]# systemctl stop firewalld

### 使用 Docker 部署 StarRocks #### 准备工作 为了使用 Docker 容器化技术来部署 StarRocks,需先确保本地环境已安装并配置好 DockerDocker Compose 工具。这一步骤不在本文讨论范围内。 #### 获取镜像 拉取官方提供的最新版 StarRocks Docker 镜像是开始部署的第一步[^1]: ```bash docker pull starrocks/starrocks-fe:latest docker pull starrocks/starrocks-be:latest ``` #### 设置标签(可选) 给刚下载下来的镜像打上易于识别的标签有助于后续管理和维护操作[^2]: ```bash docker tag starrocks/starrocks-fe:latest starrocks/fe:v0.14 docker tag starrocks/starrocks-be:latest starrocks/be:v0.14 ``` #### 启动容器 创建并启动所需的前端 (FE) 及后端 (BE) 实例。这里提供了一个简单的命令用于快速测试目的;对于生产用途,则应参照更详细的指南设置参数和选项: ```bash # 启动 Frontend 节点 docker run -d --name=starrocks_fe \ -p 8030:8030 \ -e "MY_ID=1" \ -e "STARROCKS Fe_MASTER=true" \ starrocks/fe:v0.14 # 启动 Backend 节点 docker run -d --name=starrocks_be \ -p 9050:9050 \ -p 9060:9060 \ -e " StarrOCKS_FE_HOST=<frontend_host>" \ starrocks/be:v0.14 ``` 请注意,在实际环境中应当指定具体的 `frontend_host` 地址以及考虑高可用性的多副本架构设计[^3]。 #### 连接验证 通过 MySQL 客户端或其他支持 JDBC 的工具连接到运行中的 StarRocks FE 来确认服务正常运作,并可以尝试执行一些基础查询语句来进行功能检验。 #### 版本检查 最后可以通过 SQL 查询获取当前正在使用的 StarRocks 版本号以确保一切按预期进行: ```sql SHOW FRONTENDS; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值