StarRocks企业级安装部署

0    257    2

Tags:

👉 本文共约5295个字,系统预计阅读时间或需20分钟。

前提条件

在部署 StarRocks 之前,请确保如下环境要求已满足。

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

说明

  • 依据不同的工作负载复杂性,StarRocks 每个 CPU 线程每秒可以处理 10M 至 100M 行数据。您可以据此估计集群中需要多少 CPU 线程能够满足您的要求。而 StarRocks 在存储数据时利用列存储和压缩,可以达到 4-10 倍的压缩比,您可以使用该数据来估计集群所需的存储量。
  • StarRocks 仅支持 JDK 作为依赖,不支持使用 JRE。

环境配置

为了实现集群高可用,建议集群最低3个节点,FE和BE分开部署也可以混合部署。

集群部署注意事项

假设node01、node02、node03均为符合要求的服务器,生产环境最小部署架构示例:

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

FE的数量及是否需要FE的高可用

FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Follower时,即可实现高可用(HA)。此时,若Leader节点进程挂掉或与集群脱离通信,其他2个Follower节点会通过bdbje协议快速重新选主出一个Leader,保证集群的正常工作(FE Leader节点异常仅影响集群写入,不会对集群对外的查询功能有影响)。这里注意,集群中需要有半数以上的Follower节点存活,才可进行FE的重新选主。

一般情况下,相对更推荐部署1 Follower+多Observer的FE架构,通过增加Observer来扩展集群的高并发读服务能力。

通常,一个FE节点可以应对10-20台BE节点,我们建议总的FE节点数量在10个以下,而一般3个即可满足绝大部分业务需求。

BE实例数量

BE实例数量直接决定了集群整体查询延迟,生产环境BE数量建议至少为3个。StarRocks建表时默认为3副本,生产环境下我们也推荐使用3副本数据。由于StarRocks的副本策略,副本数不能大于BE实例数(不同Host),所以为保障数据安全,建议至少部署三个BE实例(不同Host)。

Broker实例数量

通常与BE混布,与BE数量保持相同,并建议所有的Broker使用相同的名称,这样在执行Broker任务时可以并行使用多个Broker实例。

如果我们的业务中不需要和Hadoop类的产品对接,那么也可以不部署Broker。

FE与BE是否混布

前面已经提到,单台机器下,同集群FE不能混布,BE虽然能混布但是没有价值。FE和BE是可以混布的,但生产环境下需要注意CPU、内存等资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。

环境申请

IP主机名角色
172.72.2.50starrocks50FE Leader
172.72.2.51starrocks51BE + Broker + FE Observer
172.72.2.52starrocks52BE + Broker
172.72.2.53starrocks53BE + Broker

安装包部署

安装包下载: https://www.mirrorship.cn/zh-CN/download/community

需要放在每个节点上。

操作系统配置

安装jdk

部署FE节点

FE 是StarRocks的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。就是管理节点。

部署 FE 高可用集群

参考:https://docs.starrocks.io/zh-cn/latest/administration/Deployment

FE 的高可用集群采用主从复制架构,可避免 FE 单点故障。FE 采用了类 Paxos 的 Berkeley DB Java Edition(BDBJE)协议完成选主,日志复制和故障切换。在 FE 集群中,多实例分为两种角色:Follower 和 Observer。前者为复制协议的可投票成员,参与选主和提交日志,一般数量为奇数(2n+1),使用多数派(n+1)确认,可容忍少数派(n)故障;后者属于非投票成员,用于异步订阅复制日志,Observer 的状态落后于 Follower,类似其他复制协议中的 Learner 角色。

FE 集群从 Follower 中自动选出 Leader 节点,所有更改状态操作都由 Leader 节点执行。最新状态可以从 Leader FE 节点读取。更改操作可以由非 Leader 节点发起,继而转发给 Leader 节点执行,非 Leader 节点在复制日志中的 LSN 记录最近一次更改操作。读操作可以直接在非 Leader 节点上执行,但需要等待非 Leader 节点的状态已经同步到最近一次更改操作的 LSN,因此非 Leader 节点的读写操作满足顺序一致性。Observer 节点能够增加 FE 集群的读负载能力,对时效性要求放宽的非紧要用户可以选择读 Observer 节点。

注意

  • FE 节点之间的时钟相差不能超过 5s。如果节点之间存在较大时钟差,请使用 NTP 协议校准时间。
  • 一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。
  • 所有 FE 节点的 http_port 需保持相同,因此一台机器无法错开端口部署某个集群的多个 FE 节点。

使用 MySQL 客户端连接已有 FE 节点,添加新 FE 节点的信息,包括角色、IP 地址、以及 Port。

  • 添加 Follower FE 节点。

  • 添加 Observer FE 节点。

参数:

  • host:机器的 IP 地址。如果机器存在多个 IP 地址,则该项为 priority_networks 设置项下设定的唯一通信 IP 地址。
  • portedit_log_port 设置项下设定的端口,默认为 9010

出于安全考虑,StarRocks 的 FE 节点和 BE 节点只会监听一个 IP 地址进行通信。如果一台机器有多块网卡,StarRocks 有可能无法自动找到正确的 IP 地址。例如,通过 ifconfig 命令查看到 eth0 IP 地址为 192.168.1.1docker0 IP 地址为 172.72.2.1,您可以设置 192.168.1.0/24 子网以指定使用 eth0 作为通信 IP。此处采用 CIDR 的表示方法来指定 IP 所在子网范围,以便在所有的 BE 及 FE 节点上使用相同的配置。

如出现错误,您可以通过命令删除相应 FE 节点。

  • 删除 Follower FE 节点。

  • 删除 Observer FE 节点。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复