从0到1搭建StarRocks存算一体架构
随着数据量的不断增长与分析需求的增加,现代数据仓库系统对存储与计算的性能要求愈加苛刻。传统的分布式数据仓库架构往往面临着存储与计算分离带来的瓶颈,数据的读写延迟、网络传输等问题,使得系统的整体性能无法满足高效分析的需求。为了解决这个问题,StarRocks提出了存算一体的架构设计,能够同时优化存储和计算,提高查询性能。
本文将介绍如何从零开始搭建StarRocks存算一体架构,帮助开发者和运维人员理解如何使用StarRocks解决海量数据分析的问题。
什么是StarRocks?
StarRocks是一个高性能、分布式的SQL数据仓库系统,专为实时分析工作负载而设计。它的核心优势包括:
- 高性能:基于列式存储和向量化执行引擎,支持超高吞吐量的查询,尤其适合 OLAP(联机分析处理)场景。
- 存算一体:将存储与计算紧密结合,通过智能调度和资源优化,提升系统的整体性能。
- 易扩展:支持弹性扩展,可以根据需要横向增加计算节点和存储节点。
StarRocks的存算一体架构9
在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
4.版本安装三台都一样
5.确保 三台 IP 可以互相ping 通
FE+ BE 192.168.5.128
ifconig
ping 192.168.5.129 -c 5
ping 192.168.5.130 -c 5
6.确保三台 IP 可以和连外网
VM 虚拟机配置 安装JAVA
出现没有装 JAVA
1.需要先配置仓库和安装 yum 。
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
yum list " * open * java * "
这个命令的作用是列出所有名称中包含 “open” 和 “java” 的可用软件包。具体来说:
-
yum list
命令用于列出可用的软件包及其状态,包括已安装的、可用安装的和可更新的软件包。 -
"*open*java*"
是一个带通配符的字符串,表示匹配所有包含 “open” 和 “java” 的软件包。例如,它会匹配 “openjdk”、“openjdk-8”、“openjava” 等名称中包含 “open” 和 “java” 的软件包。
-
阿里云镜像源地址从
mirrors.cloud.aliyuncs.com
替换为mirrors.aliyun.com
-
安装 JAVA -11-openjdk 和 JAVA -11-headless
结果好想有些没有安装 上
那就只能删掉再来一次了
rm -rf CentOS-Base.repo
这个命令使用rm
工具删除文件或目录。具体来说:
-
rm
:是 Linux 系统中用来删除文件和目录的命令。 -
-r
:递归删除,表示不仅删除文件,还会删除文件夹及其中的所有内容。 -
-f
:强制删除,表示即使文件或目录是只读的,也强制删除,不会提示确认。 -
CentOS-Base.repo
:指定要删除的文件名,这里是CentOS-Base.repo
文件。
5.java 安装完成
which java
whereis java
5.配置 JAVA 环境变量 并找到路径
vim .bash_profile
add
Soure .bash_profile
让这个环境变量生效。然后其他2台也一样配置
2. 在 IP:192.168.5.128安装FE+BE数据库
- 创建 data 目录 并 解压
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
目录中。
2.设置软路由
-
查看指定用户的信息
id StarRocks1
-
查看指定用户的信息
cd /data/starrocks/fe/conf
vim fe.conf
Soure .bash_profile
5.配置 be.conf
6.防火墙端口配置
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
3 .添加节点
4. 在 IP:192.168.5.129安装BE数据库
配置 be.conf 如下
防火墙端口配置
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
5. 在 IP:192.168.5.130安装BE数据库
配置 be.conf 如下
防火墙端口配置
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
6. 启动
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
7.dbeaver 连接数据库
可以是官网下载
配置 选 starrocks 或者 mysql 都可以 ,
链接方式
连接成功
完成3节点的建表语句
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”
);
节点数 确认