学向勤中得,萤窗万卷书。这篇文章主要讲述StarRocks 安装与配置相关的知识,希望能为你提供帮助。
1、StarRocks简介?下载地址?:https://www.starrocks.com/zh-CN/download
?特点:?
?使用场景:?
1.1 StarRocks介绍
1.2 StarRocks适合什么场景StarRocks可以满足企业级用户的多种分析需求,包括OLAP多维分析、定制报表、实时数据分析和Ad-hoc数据分析等。具体的业务场景包括:
1.3 StarRocks基本概念
1.4 StarRocks系统架构系统架构图
组件介绍
StarRocks集群由FE和BE构成, 可以使用MySQL客户端访问StarRocks集群。
FEFE接收MySQL客户端的连接, 解析并执行SQL语句。
BE
2、部署2.0 包目录内容StarRocks-XX-1.0.0
├── be# BE目录
│├── bin
││├── start_be.sh # BE启动命令
││└── stop_be.sh# BE关闭命令
│├── conf
││└── be.conf# BE配置文件
│├── lib
││├── starrocks_be# BE可执行文件
││└── meta_tool
│└── www
├── fe# FE目录
│├── bin
││├── start_fe.sh # FE启动命令
││└── stop_fe.sh# FE关闭命令
│├── conf
││└── fe.conf# FE配置文件
│├── lib
││├── starrocks-fe.jar# FE jar包
││└── *.jar# FE 依赖的jar包
│└── webroot
└── udf
2.1 部署FE2.1.1 FE的基本配置
FE的配置文件为?StarRocks-XX-1.0.0/fe/conf/fe.conf?, 默认配置已经足以启动集群, 有经验的用户可以查看手册的系统配置章节, 为生产环境定制配置,为了让用户更好的理解集群的工作原理, 此处只列出基础配置。
2.1.2 环境准备
准备三台物理机, 需要以下环境支持:
CPU需要支持AVX2指令集,?cat /proc/cpuinfo |grep avx2?有结果输出表明CPU支持,如果没有支持,建议更换机器,StarRocks使用向量化技术需要一定的指令集支持才能发挥效果。
将StarRocks的二进制产品包分发到目标主机的部署路径并解压,可以考虑使用新建的StarRocks用户来管理。
2.1.3 FE单实例部署
(1)解压tar包
[root@hadoop01 software]# tar -zxvf StarRocks-2.0.1.tar.gz -C /data/
(2)部署FE,修改配置文件,添加jvm参数,建议-Xmx参数设置到16G以上
[root@hadoop01 software]# cd /data/StarRocks-2.0.1/fe/conf/
[root@hadoop01 conf]# vim fe.conf
JAVA_OPTS = "-Xmx4096m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$STARROCKS_HOME/log/fe.gc.log"
(3)创建元数据目录
[root@hadoop01 conf]# cd ..
[root@hadoop01 fe]# mkdir -p meta
?注意:mkdir -p meta (1.19.x及以前的版本需要使用mkdir -p doris-meta)?
(4)分发给hadoop02,hadoop03
[root@hadoop01 module]# scp -r StarRocks-2.0.1/ hadoop02:/data/
[root@hadoop01 module]# scp -r StarRocks-2.0.1/ hadoop03:/data/
(5)启动hadoop02 FE节点
[root@hadoop02 fe]# bin/start_fe.sh --daemon
(6)确认启动FE启动成功
2.1.4 使用MySQL客户端访问FE
(1)启动mysql客户端,访问FE,查看FE状况
[root@hadoop02 fe]# mysql -h hadoop02 -uroot -P9030
mysql>
SHOW PROC /frontends\\G
注意:这里默认root用户密码为空,端口为fe/conf/fe.conf中的query_port配置项,默认为9030
(2)查看FE状态
如果MySQL客户端连接不成功,请查看log/fe.warn.log日志文件,确认问题。由于是初次启动,如果在操作过程中遇到任何意外问题,都可以删除并重新创建FE的元数据目录,再从头开始操作
2.1.5 FE的高可用集群部署
FE的高可用集群采用?主从复制架构,? 可避免FE单点故障. FE采用了类raft的bdbje协议完成选主, 日志复制和故障切换. 在FE集群中, 多实例分为两种角色: ?follower?和?observer?;
FE集群从follower中自动选出master节点, 所有更改状态操作都由master节点执行, 从FE的master节点可以读到最新的状态. 更改操作可以从非master节点发起, 继而转发给master节点执行,
非master节点记录最近一次更改操作在复制日志中的LSN, 读操作可以直接在非master节点上执行, 但需要等待非master节点的状态已经同步到最近一次更改操作的LSN, 因此读写非Master节点满足顺序一致性. Observer节点能够增加FE集群的读负载能力, 时效性要求放宽的非紧要用户可以读observer节点。
FE节点之间的时钟相差不能超过5s, 使用NTP协议校准时间。
一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。
配置如下:
(1)添加其他FE节点,角色也分为?FOLLOWER,OBSERVER?
使用MySQL客户端连接已有的FE,
添加新实例的信息,信息包括角色、ip、port:
mysql>
ALTER SYSTEM ADD FOLLOWER "hadoop03:9010";
mysql>
ALTER SYSTEM ADD OBSERVER "hadoop02:9010";
(2)启动hadoop03,hadoop01 FE节点,第一次启动需指定--helper参数,后续再启动无需指定此参数
[root@hadoop03 fe]# bin/start_fe.sh --helper hadoop01:9010 --daemon
[root@hadoop01 fe]# bin/start_fe.sh --helper hadoop01:9010 --daemon
FE节点之间需要两两互联才能完成复制协议选主, 投票,日志提交和复制等功能。FE节点首次启动时,需要指定现有集群中的一个节点作为helper节点, 从该节点获得集群的所有FE节点的配置信息,才能建立通信连接,因此首次启动需要指定--helper参数:
当FE再次启动时,无须指定--helper参数,因为FE已经将其他FE的配置信息存储于本地目录, 因此可直接启动:
./bin/start_fe.sh --daemon
(3)全部启动完毕后,再使用mysql客户端查看FE的状况,alive全显示true则无问题
mysql>
SHOW PROC /frontends\\G
节点的Alive显示为true则说明添加节点成功
(4)节点的Alive显示为true则说明添加节点成功
alter system drop follower "fe_host:edit_log_port";
alter system drop observer "fe_host:edit_log_port";
2.2 部署BE2.2.1 单点部署
(1)部署BE,用户可以使用命令直接将BE添加到集群中,一般至少布置3个BE,每个BE实例添加步骤相同
[root@hadoop02 module]# cd StarRocks-2.0.1/be/
[root@hadoop02 be]# mkdir -p storage
(2)使用mysql客户端添加hadoop02对应be节点
mysql>
ALTER SYSTEM ADD BACKEND "hadoop02:9050";
这里IP地址为和priority_networks设置匹配的IP,portheartbeat_service_port,默认为9050
如出现错误,需要删除BE节点,应用下列命令:
alter system decommission backend "be_host:be_heartbeat_service_port";
(3)添加完毕后,启动hadoop02 BE节点
[root@hadoop02 be]# bin/start_be.sh --daemon
(4)查看BE状况,也是同样alive为true是正常运行
mysql>
SHOW PROC /backends\\G
2.2.2 BE集群部署
(1)同样步骤在hadoop03,hadoop01部署BE,并添加节点
[root@hadoop03 module]# cd StarRocks-2.0.1/be/
[root@hadoop03 be]# mkdir -p storage
[root@hadoop01 module]# cd StarRocks-2.0.1/be/
[root@hadoop01 be]# mkdir -p storage
mysql>
ALTER SYSTEM ADD BACKEND "hadoop03:9050";
mysql>
ALTER SYSTEM ADD BACKEND "hadoop01:9050";
[root@hadoop03 be]# bin/start_be.sh --daemon
[root@hadoop01 be]# bin/start_be.sh --daemon
2.3 部署Broker(1)部署Broker,此角色主要用于后续Broker load使用,启动安装目录的Broker服务
[root@hadoop02 StarRocks-2.0.1]# cd apache_hdfs_broker/
[root@hadoop02 apache_hdfs_broker]# bin/start_broker.sh --daemon
[root@hadoop03 StarRocks-2.0.1]# cd apache_hdfs_broker/
[root@hadoop03 apache_hdfs_broker]# bin/start_broker.sh --daemon
[root@hadoop01 StarRocks-2.0.1]# cd apache_hdfs_broker/
[root@hadoop01 apache_hdfs_broker]# bin/start_broker.sh --daemon
(2)使用mysql添加对应节点
mysql>
ALTER SYSTEM ADD BROKER broker1 "hadoop02:8000";
mysql>
ALTER SYSTEM ADD BROKER broker2 "hadoop03:8000";
mysql>
ALTER SYSTEM ADD BROKER broker3 "hadoop01:8000";
(3)查看状态
mysql>
SHOW PROC "/brokers"\\G
【StarRocks 安装与配置】
推荐阅读
- Keepalived的不(非)抢占模式#yyds干货盘点#
- Flume部署文档
- #yyds干货盘点#网络协议之:socket协议详解之Unix domain Socket
- SOFAStack CAFE 单元化混合云产品中的 Kubernetes 多集群实践
- Hyperledger Fabric 2.x 环境搭建
- #yyds干货盘点# MySQL的普通索引和唯一索引到底什么区别()
- #yyds干货盘点#前端在线预览PDF文件
- 6. MGR状态监控 | 深入浅出MGR
- 《重构 JavaScript》读后感和部分摘录