因业务需要,特此了解StarRocks产品和部署。
接触过程中发现指导资料很稀少,本人将结合官方的手册+其他开源博主指导,将第一次接触到的概念和部署流程梳理,得出本文。
已有的资源中对细节介绍欠缺,导致我本人整个过程中花费了大量时间去验证。这也是本文独特之处
目录
- 了解星环数据库
- 部署前准备
- 部署
- 1.1部署单个FE节点
- 1.1.1 安装mysql
- 1.1.2 安装JDK
- 1.1.3 安装StarRocks
- 1.1.4 启动FE节点
- 1.1.5 以Mysql客户端方式连接FE实现添加节点
- 1.2 部署单个BE节点
- 1.3 部署Broker节点
- 1.4 停止节点
- 1.4.1 停止FE节点
- 1.4.2 停止BE节点
- 1.5 删除BE节点
- 1.6 卸载MySQL
- 1.7 卸载JDK
了解星环数据库
- 什么是星环数据库?
StarRocks(星环数据库),一款国产开源的分析性数据库管理系统。专注于实时查询和分析大规模数据。
- 为什么使用StarRocks?
-
若项目中已经使用了优化查询,库的分页分表,硬件升级,缓存,ES引擎这些方案提高查询效率后,发现查询效率仍不高,表明在处理此量级别的数据时,mysql性能受限。因此需要更换一款具有更强性能处理海量数据(PB级别及以上)的数据库
-
若项目中需要及时获得最新的数据分析结果或需要快速查询大规模数据集,StarRocks具有出色的查询性能和可扩展性,其使用列式存储和分布式架构,可轻松处理大规模数据集,并提供更快的查询效率
-
SatrtRocks处理海量结构化数据的存储,ES提供非结构化数据的全文搜索和分析能力,针对海量数据存储和数据搜索的需求,SatrRocks+ES是一套成熟的解决方案。
-
总而言之,StarRocks是专门为分布式场景和处理大规模数据研发的,只是说其2022年开发版本进入2.0,且未实现全平台兼容。不如mysql稳定性强和庞大的社区规模。
- 使用前注意事项?
StarRocks对部署的硬件有一定的要求。不符合要求的环境会无法启动或者性能不佳。
x86环境
- StarRocks现仅支持拥有avx2指令集的x86架构的cpu;不支持avx2指令集的x86架构的cpu无法启动StarRocks。(但可以修改StarRocks源码启动,仅供学习使用,不推荐)
Arm环境
- arm环境不提供指令集SIMD指令集,因此需要手动编译二进制文件(无法发挥StarRocks全部性能)
总结来说:StarRocks仅支持部分X86环境
- 安装设备要求
必须 CentOS 7操作环境;(经测试,不支持其他测试环境:red hat)
必须 内存16G及以上; (经测试,不满足有概率无法添加FE节点)
磁盘空间200G及以上;
cpu 8核;(6核也行,推荐8核)
(不满足以上条件在部署时会极大概率会导致失败)
5.手动部署流程
本文将会在一台服务器上进行如下操作
1) 安装mysql
2) 安装+配置JDK
3) 安装StarRocks
4) 启动FE+添加节点
5) 启动BE+添加节点
部署前准备
1)判断服务器环境是否支持部署,输入命令后有输出内容代表通过
cat /proc/cpuinfo | grep avx2
2)检查端口是否被占用
netstat -tunlp | grep 9060
netstat -tunlp | grep 8040
netstat -tunlp | grep 9050
netstat -tunlp | grep 8060
netstat -tunlp | grep 9050
StarRocks启动会默认占用此端口,若被占用,可以放开此端口(推荐)或在后面部署StarRocks中修改默认端口。
3)最佳的StarRocks部署方案
一台服务器只能部署一个FE节点
可以多台服务器部署多个FE节点搭建FE集群(节点会自动选主)
一台服务器部署一个BE节点
可以多台服务器部署多个BE节点搭建BE集群
每个服务器上部署一个Broker节点
4) 基本概念
FE节点
负责查询规则,查询调度(连接数据库,解析执行sql)
BE节点
负责存储数据
Broker节点
负责数据的导入导出。(StarRocks—Broker—Hadoop)
部署
1.1部署单个FE节点
创建目录,分别上传对应的压缩包
/home
--mouble
--JDK
– jdk-8u271-linux-x64.tar.gz
--MySQL
--mysql80-community-release-el7-9.noarch.rpm
--StarRocks
– StarRocks-3.0.4.tar.gz
1.1.1 安装mysql
-
安装软件包
yum install mysql80-community-release-el7-9.noarch.rpm
-
安装mysql
yum install mysql-community-server
-
启动mysql
systemctl start mysqld
-
检查mysql是否启动
systemctl status mysqld
1.1.2 安装JDK
注意一下
1)解压
tar -zxvf /home/mouble/JDk/jdk-8u271-linux-x64.tar.gz
2)编辑profile文件
vim /etc/profile
添加以下命令
JAVA_HOME=/home/mouble/JDk/jdk1.8.0_271
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
3)检查java是否安装成功
java -version
1.1.3 安装StarRocks
1)解压到本地当前目录
tar -zxvf StarRocks-3.0.4.tar.gz
得到此文件夹,cd进入,后续操作都在/StarRocks-3.0.4路径下
2)修改fe.conf文件内容:需要将内存升级到16G以上
切换路径
cd /StarRocks-3.0.4/fe/conf/
编辑fe.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"
1.1.4 启动FE节点
1)创建元数据目录 mate:存放生产的元数据,此目录不会自动创建
切换路径到/fe
cd /StarRocks-3.0.4/fe/
创建文件
mkdir mate
2)启动FE节点
以守护进程的形式启动
./start_fe.sh --daemon
jps命令查看java相关的进程信息:出现FE
jps
3)在日志中查看FE是否启动成功
切换路径 /StarRocks-3.0.4/fe/log/
查看启动日志 cat fe.log
4)浏览器登陆数据库是否启动成功
(本服务地址是:192.168.148.13)替换成自己的
账号:root 密码:无 (输入地址后会弹出来输入框)
1.1.5 以Mysql客户端方式连接FE实现添加节点
1)测试链接
mysql -h 192.168.148.13 -uroot -P9030
(只需替换自己的IP)
解释:默认密码是空,默认FE端口是9030
2)查看FE情况
SHOW PROC '/frontends'\G
3)退出mysql(仅告诉你如何退出,先不要退出mysql)
mysql> exit
至此,FE设置完毕!
1.2 部署单个BE节点
重启一个新的终端(不要关闭上一个终端)
- 创建storage目录存放BE元数据
切换路径 cd /StarRocks-3.0.4/be/
创建文件夹 mkdir storage
- 使用mysql客户端添加新终端对应be节点
在上一个终端界面操作
ALTER SYSTEM ADD BACKEND "192.168.148.13:9050";
解释 IP地址—启动BE节点的服务器IP,这里我们使用的同一台服务器,原则上应该是新的服务器。 9050端口:默认BE端口
- 启动BE
在新的终端界面操作
bin/start_be.sh –daemon(注意启动前路径是否在/be)
-
查看BE是否启动成功
ps -ef | grep starrocks_be
BE使用C++编写,使用ps命令查看进程,若发现有starrocks_be进程,即为启动成功:
-
以mysql方式访问BE状态
在上一个终端界面输入SHOW PROC '/backends'\G
至此 BE节点成功启动!
1.3 部署Broker节点
正常应该是有几个服务器,部署几个Broker节点
-
切换路径
-
启动Broker节点
./start_broker.sh --daemon
-
添加Broker节点
broker1:自定义的broker名字
ALTER SYSTEM ADD BROKER broker1 "192.168.148.13:8000";
-
检查Broker节点
SHOW PROC "/brokers"\G
1.4 停止节点
1.4.1 停止FE节点
注意文件路径/StarRocks-3.0.4/fe/bin/stop_fe.sh –daemon
./stop_fe.sh –daemon
1.4.2 停止BE节点
注意文件路径/StarRocks-3.0.4/be/bin/stop_fe.sh –daemon
./stop_be.sh –daemon
1.5 删除BE节点
mysql> alter system dropp backend '192.168.148.13:9050';
1.6 卸载MySQL
查看有哪些安装包需要卸载
rpm -qa | grep -i mysql
1)关闭mysql服务
service mysql stop
2)查看mysql状态是否关闭
systemctl status mysql
3)从系统中删除MySQL及其相关的软件包
yum remove mysql-server mysql-client mysql-common
yum autoremove
yum clean all
4)检查是否卸载干净 rpm -qa | grep -i mysql
还存在就执行: rm -ev 安装包名
1.7 卸载JDK
yum remove java-1.8.0-openjdk
java -version