从0到1搭建StarRocks3.4.1存算一体架构(VM 虚拟机版)
随着数据量的不断增长与分析需求的增加,现代数据仓库系统对存储与计算的性能要求愈加苛刻。传统的分布式数据仓库架构往往面临着存储与计算分离带来的瓶颈,数据的读写延迟、网络传输等问题,使得系统的整体性能无法满足高效分析的需求。为了解决这个问题,StarRocks提出了存算一体的架构设计,能够同时优化存储和计算,提高查询性能。
本文将介绍如何从零开始搭建StarRocks存算一体架构,帮助开发者和运维人员理解如何使用StarRocks解决海量数据分析的问题。
文章目录
- [从0到1搭建StarRocks3.4.1存算一体架构(VM 虚拟机版)](#从0到1搭建StarRocks3.4.1存算一体架构(VM 虚拟机版))
-
- 什么是StarRocks?
- 标题StarRocks的存算一体架构
- [1 环境准备](#1 环境准备)
- 2.版本安装三台都一样
- [3.确保 三台 IP 可以互相ping 通](#3.确保 三台 IP 可以互相ping 通)
- [4.确保三台 IP 可以和连外网](#4.确保三台 IP 可以和连外网)
- [5.需要先配置仓库和安装 yum 。](#5.需要先配置仓库和安装 yum 。)
- [标题2.清除缓存 ,再安装 JAVA](#标题2.清除缓存 ,再安装 JAVA)
- [6.配置 JAVA 环境变量 并找到路径](#6.配置 JAVA 环境变量 并找到路径)
- [7. 在 IP:192.168.5.128安装FE+BE数据库](#7. 在 IP:192.168.5.128安装FE+BE数据库)
- 8.设置软路由
- [9.配置 fe.conf](#9.配置 fe.conf)
- [10.配置 be.conf](#10.配置 be.conf)
- [11 .防火墙端口配置](#11 .防火墙端口配置)
- [12. 启动](#12. 启动)
- [13.dbeaver 连接数据库](#13.dbeaver 连接数据库)
什么是StarRocks?
StarRocks是一个高性能、分布式的SQL数据仓库系统,专为实时分析工作负载而设计。它的核心优势包括:
高性能:基于列式存储和向量化执行引擎,支持超高吞吐量的查询,尤其适合 OLAP(联机分析处理)场景。
存算一体:将存储与计算紧密结合,通过智能调度和资源优化,提升系统的整体性能。
易扩展:支持弹性扩展,可以根据需要横向增加计算节点和存储节点。
具体链接
标题StarRocks的存算一体架构
在StarRocks的存算一体架构中,计算与存储资源的分配和调度是紧密结合的。传统的分布式架构将存储和计算分开,需要复杂的调度和数据传输。StarRocks则通过以下方式优化了这两者的协同工作:
统一存储:StarRocks将数据存储在列式存储引擎中,采用Parquet格式高效存储数据。通过将存储与计算紧密结合,计算节点可以直接访问本地数据,而不需要通过网络进行频繁的读写操作。
计算引擎:计算引擎采用高效的向量化执行模型,支持大规模并行计算,大幅提升查询速度。
资源调度:在StarRocks中,存储与计算节点的资源可以根据业务需求进行动态调度。计算任务可以被自动调度到合适的计算节点,而数据存储则根据容量需求动态分配到存储节点。
这种设计使得StarRocks在处理大量数据时,能够最大程度地减少数据传输的瓶颈,同时保证计算性能,尤其适合大规模实时分析场景。
好了,相信很多人都想安装 StarRocks 但是都卡在的第一步,往往第一步配置可能是最难的
前面废话说了很多直接上干货 。
1 环境准备
我的电脑配置

VM 虚拟机配置 网络
我安装了 3台 Centos 8的 虚拟机

然后由于本人配置有限三台VM 配置如下
主要用于 FE+ BE
IP:192.168.5.128

主要用于 BE
IP:192.168.5.129
主要用于 BE
IP:192.168.5.130
2.版本安装三台都一样

3.确保 三台 IP 可以互相ping 通
FE+ BE 192.168.5.128
ifconig

ping 192.168.5.129 -c 5
ping 192.168.5.130 -c 5

4.确保三台 IP 可以和连外网

VM 虚拟机配置 安装JAVA
image
出现没有装 JAVA

5.需要先配置仓库和安装 yum 。
powershell
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
这个命令的作用是通过 curl 工具下载 CentOS 8 的 YUM 仓库配置文件,并将其保存到 /etc/yum.repos.d/CentOS-Base.repo 路径。具体来说:
curl 是一个命令行工具,用于从指定的 URL 下载数据。
-o /etc/yum.repos.d/CentOS-Base.repo 参数表示将下载的内容保存到指定的文件路径 /etc/yum.repos.d/CentOS-Base.repo 中。
http://mirrors.aliyun.com/repo/Centos-8.repo 是一个阿里云提供的 CentOS 8 的镜像源配置文件地址。
标题2.清除缓存 ,再安装 JAVA
powershell
yum list " * open * java * "
这个命令的作用是列出所有名称中包含 "open" 和 "java" 的可用软件包。具体来说:
yum list 命令用于列出可用的软件包及其状态,包括已安装的、可用安装的和可更新的软件包。
"openjava*" 是一个带通配符的字符串,表示匹配所有包含 "open" 和 "java" 的软件包。例如,它会匹配 "openjdk"、"openjdk-8"、"openjava" 等名称中包含 "open" 和 "java" 的软件包。
阿里云镜像源地址从 mirrors.cloud.aliyuncs.com 替换为 mirrors.aliyun.com

安装 JAVA -11-openjdk 和 JAVA -11-headless
结果好想有些没有安装 上

那就只能删掉再来一次了
powershell
rm -rf CentOS-Base.repo
这个命令使用 rm 工具删除文件或目录。具体来说:
rm :是 Linux 系统中用来删除文件和目录的命令。
-r :递归删除,表示不仅删除文件,还会删除文件夹及其中的所有内容。
-f :强制删除,表示即使文件或目录是只读的,也强制删除,不会提示确认。
CentOS-Base.repo :指定要删除的文件名,这里是 CentOS-Base.repo 文件。
php
which java
whereis java
6.配置 JAVA 环境变量 并找到路径
powershell
vim .bash_profile
Soure .bash_profile
让这个环境变量生效。然后其他2台也一样配置
7. 在 IP:192.168.5.128安装FE+BE数据库
创建 data 目录 并 解压
image
tar xf StarRocks-3.4.1-centos-amd64.tar.gz -C /data
这个命令使用 tar 工具来解压一个 .tar.gz 文件。具体解释如下:
tar : tar 是一个用于压缩和解压文件的命令行工具。它常用来打包文件或解压归档文件。
x :表示解压操作。 tar 命令可以用来创建归档、解压归档、查看归档内容等。 x 表示解压归档。
f :表示后面跟的是归档文件的名称, f 让 tar 知道它接下来的参数是文件名。
StarRocks-3.4.1-centos-amd64.tar.gz :这是要解压的文件名。它是一个压缩文件,包含了 StarRocks 软件的 CentOS 版本的二进制文件。
-C /data : -C 选项告诉 tar 将文件解压到指定目录 /data 。这意味着解压后的文件将被放置在 /data 目录中。
8.设置软路由
ln -s ...

查看指定用户的信息
powershell
id StarRocks1

9.配置 fe.conf
powershell
cd /data/starrocks/fe/conf
vim fe.conf

10.配置 be.conf

11 .防火墙端口配置
powershell
sudo firewall-cmd --zone=public --add-port=9030/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9020/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9010/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8030/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8040/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8050/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8060/tcp --permanent
在 IP:192.168.5.129安装BE数据库
配置 be.conf 如下
防火墙端口配置
powershell
sudo firewall-cmd --zone=public --add-port=9050/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9060/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8040/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8060/tcp --permanent
在 IP:192.168.5.130安装BE数据库
配置 be.conf 如下
防火墙端口配置
powershell
sudo firewall-cmd --zone=public --add-port=9050/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9060/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8040/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8060/tcp --permanent
12. 启动
具体链接
192.168.5.128 启动
./data/starrocks/fe/bin/start_fe.sh --daemon
./data/starrocks/be/bin/start_be.sh --daemon
192.168.5.129启动
./data/starrocks/be/bin/start_be.sh --daemon
192.168.5.130启动
./data/starrocks/be/bin/start_be.sh --daemon
13.dbeaver 连接数据库
可以是官网下载
配置 选 starrocks 或者 mysql 都可以 ,
链接方式

连接成功

完成3节点的建表语句
sql
CREATE TABLE user_access2 (
uid int(11) NULL COMMENT "",
name varchar(64) NULL COMMENT "",
age int(11) NULL COMMENT "",
phone varchar(16) NULL COMMENT "",
last_access datetime NULL COMMENT "",
credits double NULL COMMENT ""
) ENGINE=OLAP
DUPLICATE KEY(uid, name)
DISTRIBUTED BY RANDOM
ORDER BY(uid, name)
PROPERTIES (
"compression" = "LZ4",
"fast_schema_evolution" = "true",
"replicated_storage" = "true",
"replication_num" = "3"
);

节点数确认

如果你需要更加具体的可以访问 https://forum.mirrorship.cn/t/topic/18416?u=tomxu