StarRocks企业级安装部署

0    53    2

Tags:

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

前提条件

在部署 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均为符合要求的服务器,生产环境最小部署架构示例:

StarRocks企业级安装部署

其中,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)。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

Broker实例数量

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

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

FE与BE是否混布

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

环境申请

StarRocks企业级安装部署

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 节点。

具体操作参考扩容缩容

连接 FE 节点

FE 节点需两两之间建立通信连接方可实现复制协议选主,投票,日志提交和复制等功能。当新的FE节点首次被添加到已有集群并启动时,您需要指定集群中现有的一个节点作为 helper 节点,并从该节点获得集群的所有 FE 节点的配置信息,才能建立通信连接。因此,在首次启动新 FE 节点时候,您需要通过命令行指定 --helper 参数。

参数:

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

当FE再次启动时,无须指定--helper参数,因为FE已经将其他FE的配置信息存储于本地目录, 因此可直接启动。

【温馨提示】如果启动失败了,删除元数据目录下的文件重新启动。

示例:

部署BE节点

如添加过程出现错误,需要通过以下命令将该 BE 节点从集群移除。

部署Broker节点

通过 Broker,StarRocks 可读取对应数据源(如HDFS、S3)上的数据,利用自身的计算资源对数据进行预处理和导入。除此之外,Broker 也被应用于数据导出,备份恢复等功能。

通过以下命令启动 Broker。

Alivetrue 时,当前 Broker 节点正常接入集群。

修改root密码

检查

web界面:http://172.72.2.50:8030/ 用户名:root 密码为空

StarRocks企业级安装部署

负载均衡

如何通过在多个 FE 节点之上部署负载均衡层以实现 StarRocks 的高可用?参考:https://www.oomspot.com/post/starrocksguanlifuzaijunheng

通过代码均衡负载

您可以在应用层代码进行重试和负载均衡。当特定连接宕机,代码应控制系统自动在其他连接上进行重试。使用该方式,您需要配置多个 StarRocks 前端节点地址。

通过 JDBC Connector 均衡负载

如果您使用 MySQL JDBC Connector 连接 StarRocks,可以通过 JDBC 的自动重试机制进行重试和负载均衡。

通过 ProxySQL 均衡负载

ProxySQL 是一个灵活强大的 MySQL 代理层, 可以实现读写分离,支持 Query 路由、SQL Cache,动态加载配置、故障切换和 SQL 过滤等功能。

StarRocks 的 FE 进程负责接收用户连接和查询请求,其本身是可以横向扩展且可以部署为高可用集群。您需要在多个 FE 节点上架设一层 Proxy 以实现自动的连接负载均衡。

常用SQL

总结

1、2.5.3、3.0.0安装过程一样

参考

https://docs.starrocks.io/zh-cn/latest/quick_start/Deploy

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

https://www.cnblogs.com/liugp/p/16513501.html

https://blog.csdn.net/ult_me/article/details/121716779

https://www.xmmup.com/starrocksdanjihuanjinganzhuangbushu.html

https://www.oomspot.com/post/starrocksguanlifuzaijunheng

标签:

头像

小麦苗

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

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部