StarRocks数据库部署全记录(保姆式帮助你初次体验StarRocks)

news2024/12/30 2:40:33

因业务需要,特此了解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

了解星环数据库

  1. 什么是星环数据库?

StarRocks(星环数据库),一款国产开源的分析性数据库管理系统。专注于实时查询和分析大规模数据。

  1. 为什么使用StarRocks?
  • 若项目中已经使用了优化查询,库的分页分表,硬件升级,缓存,ES引擎这些方案提高查询效率后,发现查询效率仍不高,表明在处理此量级别的数据时,mysql性能受限。因此需要更换一款具有更强性能处理海量数据(PB级别及以上)的数据库

  • 若项目中需要及时获得最新的数据分析结果或需要快速查询大规模数据集,StarRocks具有出色的查询性能和可扩展性,其使用列式存储和分布式架构,可轻松处理大规模数据集,并提供更快的查询效率

  • SatrtRocks处理海量结构化数据的存储,ES提供非结构化数据的全文搜索和分析能力,针对海量数据存储和数据搜索的需求,SatrRocks+ES是一套成熟的解决方案。

  • 总而言之,StarRocks是专门为分布式场景和处理大规模数据研发的,只是说其2022年开发版本进入2.0,且未实现全平台兼容。不如mysql稳定性强和庞大的社区规模。

  1. 使用前注意事项?

StarRocks对部署的硬件有一定的要求。不符合要求的环境会无法启动或者性能不佳。

x86环境

  • StarRocks现仅支持拥有avx2指令集的x86架构的cpu;不支持avx2指令集的x86架构的cpu无法启动StarRocks。(但可以修改StarRocks源码启动,仅供学习使用,不推荐)

Arm环境

  • arm环境不提供指令集SIMD指令集,因此需要手动编译二进制文件(无法发挥StarRocks全部性能)

总结来说:StarRocks仅支持部分X86环境

  1. 安装设备要求

必须 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

在这里插入图片描述

  1. 安装软件包
    yum install mysql80-community-release-el7-9.noarch.rpm
    在这里插入图片描述

  2. 安装mysql
    yum install mysql-community-server
    在这里插入图片描述

  3. 启动mysql
    systemctl start mysqld

  4. 检查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节点

重启一个新的终端(不要关闭上一个终端)
在这里插入图片描述

  1. 创建storage目录存放BE元数据

切换路径 cd /StarRocks-3.0.4/be/
创建文件夹 mkdir storage
在这里插入图片描述

  1. 使用mysql客户端添加新终端对应be节点

在上一个终端界面操作
ALTER SYSTEM ADD BACKEND "192.168.148.13:9050";

在这里插入图片描述

解释 IP地址—启动BE节点的服务器IP,这里我们使用的同一台服务器,原则上应该是新的服务器。 9050端口:默认BE端口

  1. 启动BE
    在新的终端界面操作
    bin/start_be.sh –daemon(注意启动前路径是否在/be)

在这里插入图片描述

  1. 查看BE是否启动成功
    ps -ef | grep starrocks_be
    BE使用C++编写,使用ps命令查看进程,若发现有starrocks_be进程,即为启动成功:
    在这里插入图片描述

  2. 以mysql方式访问BE状态
    在上一个终端界面输入SHOW PROC '/backends'\G

在这里插入图片描述

至此 BE节点成功启动!



1.3 部署Broker节点

正常应该是有几个服务器,部署几个Broker节点

  1. 切换路径
    在这里插入图片描述

  2. 启动Broker节点
    ./start_broker.sh --daemon
    在这里插入图片描述

  3. 添加Broker节点
    broker1:自定义的broker名字
    ALTER SYSTEM ADD BROKER broker1 "192.168.148.13:8000";
    在这里插入图片描述

  4. 检查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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/827216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

fifo读写的数据个数

fifo IP核设置读写个数 如果不勾选精确值,则统计的当前写入和待读出的数据为估计值,可能会相差2个左右。且fifo设计的wr_data_count. wr_data_count:当前的fifo中剩余已经写入的数据。 rd_data_count:当前的fifo中剩余可以读出…

Codeforces Round 855 (Div. 3) E题题解

文章目录 [ Unforgivable Curse (hard version)](https://codeforces.com/contest/1800/problem/E2)问题建模问题分析方法1分析性质1.分析操作对元素位置的影响2.分析可以使用操作的元素可以与相邻元素交换位置的作用代码 方法2通过DFS得到相互可以交换位置的字符集合代码 方法…

vue3和typescript_组件

1 components下新建myComponent.vue 2 页面中引入组件,传入值,并且绑定事件函数。 3

原型链污染,nodejs逃逸例子

文章目录 原型链污染原型链污染原理原型链污染小例子 原型链污染题目解析第一题第二题 Nodejs沙箱逃逸方法一方法二 原型链污染 原型链污染原理 原型链 function test(){this.a test; } b new test;可以看到b在实例化为test对象以后,就可以输出test类中的属性a…

关于Linux启动后eth0网卡起不来的问题

1./etc/udev/rules.d/70-persistent-net.rules 先到这个文件中 将eth0注掉 ## 同时记录ADDR 2.mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth2 注意这个eth2, 要和第一步的号码对应 同时进入文件,将设备和ADDR修改 3.重启网络 servi…

FTP文件传输协议

FTP文件传输协议 介绍 将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中,是一项基本的网络应用,即文件传送文件传输协议(File Transfer Protocol)是因特网上使用得最广泛的文件传输协议 FTP提供交互式访问,允许客户指明文件…

flask中写一个基础的sqlHelper类

写一个SQLHelper类: from flask_sqlalchemy import SQLAlchemydb SQLAlchemy()class SQLHelper:staticmethoddef add(record):db.session.add(record)return SQLHelper.session_commit()staticmethoddef add_all(records):db.session.add_all(records)return SQLH…

FFmepg视频解码

1 前言 上一篇文章<FFmpeg下载安装及Windows开发环境设置>介绍了FFmpeg的下载安装及环境配置&#xff0c;本文介绍最简单的FFmpeg视频解码示例。 2 视频解码过程 本文只讨论视频解码。 FFmpeg视频解码的过程比较简单&#xff0c;实际就4步&#xff1a; 打开媒体流获取…

Meta-Transformer:基于Transformer的多模态感知,融合Token化与共享编码

论文标题&#xff1a;Meta-Transformer: A Unified Framework for Multimodal Learning 论文地址&#xff1a;https://arxiv.org/pdf/2307.10802.pdf 这里写目录标题 引言基于Transformer的多模态发展Meta-Transformer框架预备知识数据到序列如何分词&#xff08;Data-to-Seq…

Clion一个项目内多个main

创建单个main文件时 这样的文件不属于任何项目&#xff0c;每个文件都有自己的exe

全网最强,Jmeter接口测试-SHA256加密接口测试(详细实战)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口文档如下&…

【福建事业单位-语言理解】04 逻辑填空-病句-歧义

【福建事业单位-语言理解】04 逻辑填空-病句-歧义 一、逻辑填空1.1 词的辨析1.1.1词义侧重1.1.2固定搭配1.1.3程度轻重1.1.4 感情色彩总结 1.2语境分析&#xff08;关联关系&#xff09;1.2.1 转折1.2.2递进1.2.3并列1.2.4因果关系 1.3语境分析&#xff08;对应关系&#xff09…

中国工商银行长春分行 聚焦融合互促 让机关党建更有活力

党的十八大以来&#xff0c;中国工商银行长春分行党委认真落实中央部署&#xff0c;立足金融工作政治性、人民性的基本原则&#xff0c;深刻把握机关党建的要点、着力破解难点、大力打造亮点&#xff0c;围绕“党建”模式&#xff0c;将党建融入经营管理各个方面&#xff0c;使…

SSD 之乱七八糟的概念

1. 性能指标有哪些&#xff1f;分别是什么意思&#xff1f; 硬盘性能指标一般包括 IOPS&#xff08;反映的是随机读写性能&#xff09;、吞吐量&#xff08;也称为带宽&#xff0c;反映的是顺序读写性能&#xff09;、Response Time / Latency&#xff08;响应时间 / 时延&…

dev控件gridControl,gridview中添加合计

需求&#xff1a;在合并结账查询中&#xff0c;双击每一条结账出现这次结账对应的结算明细&#xff1a; 弹出的页面包括&#xff1a;结算日期&#xff0c;ID&#xff0c;姓名&#xff0c;费别&#xff0c;预交金收入&#xff0c;结算金额&#xff0c;收据号&#xff0c;合计&a…

什么是线程?为什么需要线程?和进程的区别?

目录 前言 一.线程是什么&#xff1f; 1.1.为什么需要线程 1.2线程的概念 1.3线程和进程的区别 二.线程的生命周期 三.认识多线程 总结 &#x1f381;个人主页&#xff1a;tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主 &#x1f3a5; 本文由 tq02 原创&#xf…

振动试验台使用过程中经常用到的计算公式,推荐收藏!

以下为正文&#xff1a; 1、求推力(F)的公式 式中&#xff1a; F — 推力(激振力)(N) m0 — 振动台运动部分有效质量(kg) m1 — 辅助台面质量(kg) m2 — 试件(包括夹具、安装螺钉)质量(kg) A — 试验加速度(m/s) 2、加速度(A)、速度(V)、位移(D)三个振动参数的互换运算…

Java反射全面详解

1. 什么是反射&#xff1f; 首先听这个名字就有些疑惑&#xff0c;什么是反射&#xff0c;它能用来干什么呢&#xff1f; Java官方对反射的解释是 "反射允许对封装类的字段&#xff0c;方法和构造函数进行编程式访问"。这里的字段指的就是成员变量&#xff0c;方法…

prometheus监控k8s kube-proxy target down

prometheus target down 修改配置 kubectl edit cm/kube-proxy -n kube-systemmetricsBindAddress: "0.0.0.0:10249"删除 kube-proxy pod 使之重启应用配置 kubectl delete pod --force kubectl get pod -n kube-system |grep kube-proxy|awk {print $1} -n kube-…

网工内推 | 网络安全工程师,最高15K,有高温补贴

01 超圣信华 招聘岗位&#xff1a;网络安全工程师 职责描述&#xff1a; 1. 负责网络安全产品的售前沟通交流、现状调研、方案设计、产品测试、产品选型和招投标等工作。 2. 负责网络安全集成项目的实施管理、项目交付文档编制以及项目验收等工作。 3. 负责网络安全产品的售后…