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

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

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 firewa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值