从0到1搭建StarRocks3.4.1存算一体架构(VM 虚拟机版)

从0到1搭建StarRocks存算一体架构

随着数据量的不断增长与分析需求的增加,现代数据仓库系统对存储与计算的性能要求愈加苛刻。传统的分布式数据仓库架构往往面临着存储与计算分离带来的瓶颈,数据的读写延迟、网络传输等问题,使得系统的整体性能无法满足高效分析的需求。为了解决这个问题,StarRocks提出了存算一体的架构设计,能够同时优化存储和计算,提高查询性能。

本文将介绍如何从零开始搭建StarRocks存算一体架构,帮助开发者和运维人员理解如何使用StarRocks解决海量数据分析的问题。

什么是StarRocks?

StarRocks是一个高性能、分布式的SQL数据仓库系统,专为实时分析工作负载而设计。它的核心优势包括:

  1. 高性能:基于列式存储和向量化执行引擎,支持超高吞吐量的查询,尤其适合 OLAP(联机分析处理)场景。
  2. 存算一体:将存储与计算紧密结合,通过智能调度和资源优化,提升系统的整体性能。
  3. 易扩展:支持弹性扩展,可以根据需要横向增加计算节点和存储节点。

具体链接

StarRocks的存算一体架构9

在StarRocks的存算一体架构中,计算与存储资源的分配和调度是紧密结合的。传统的分布式架构将存储和计算分开,需要复杂的调度和数据传输。StarRocks则通过以下方式优化了这两者的协同工作:

  1. 统一存储:StarRocks将数据存储在列式存储引擎中,采用Parquet格式高效存储数据。通过将存储与计算紧密结合,计算节点可以直接访问本地数据,而不需要通过网络进行频繁的读写操作。
  2. 计算引擎:计算引擎采用高效的向量化执行模型,支持大规模并行计算,大幅提升查询速度。
  3. 资源调度:在StarRocks中,存储与计算节点的资源可以根据业务需求进行动态调度。计算任务可以被自动调度到合适的计算节点,而数据存储则根据容量需求动态分配到存储节点。

这种设计使得StarRocks在处理大量数据时,能够最大程度地减少数据传输的瓶颈,同时保证计算性能,尤其适合大规模实时分析场景。

具体链接

好了,相信很多人都想安装 StarRocks 但是都卡在的第一步,往往第一步配置可能是最难的

前面废话说了很多直接上干货 。

1. 环境准备

我的电脑配置

image

VM 虚拟机配置 网络

我安装了 3台 Centos 8的 虚拟机
image

然后由于本人配置有限三台VM 配置如下

  1. 主要用于 FE+ BE
    IP:192.168.5.128

  2. 主要用于 BE
    IP:192.168.5.129

  3. 主要用于 BE
    IP:192.168.5.130

4.版本安装三台都一样
image

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

ping 192.168.5.129 -c 5
ping 192.168.5.130 -c 5
image

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

VM 虚拟机配置 安装JAVA

image
出现没有装 JAVA

image

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 路径。具体来说:

  1. curl 是一个命令行工具,用于从指定的 URL 下载数据。
  2. -o /etc/yum.repos.d/CentOS-Base.repo 参数表示将下载的内容保存到指定的文件路径 /etc/yum.repos.d/CentOS-Base.repo 中。
  3. http://mirrors.aliyun.com/repo/Centos-8.repo 是一个阿里云提供的 CentOS 8 的镜像源配置文件地址。

2.清除缓存 ,再安装 JAVA

yum list " * open * java * "

这个命令的作用是列出所有名称中包含 “open” 和 “java” 的可用软件包。具体来说:

  1. yum list 命令用于列出可用的软件包及其状态,包括已安装的、可用安装的和可更新的软件包。

  2. "*open*java*" 是一个带通配符的字符串,表示匹配所有包含 “open” 和 “java” 的软件包。例如,它会匹配 “openjdk”、“openjdk-8”、“openjava” 等名称中包含 “open” 和 “java” 的软件包。

  3. 阿里云镜像源地址从 mirrors.cloud.aliyuncs.com 替换为 mirrors.aliyun.com

  4. 安装 JAVA -11-openjdk 和 JAVA -11-headless
    image


    结果好想有些没有安装 上

    那就只能删掉再来一次了

rm -rf CentOS-Base.repo
这个命令使用 rm 工具删除文件或目录。具体来说:

  1. rm :是 Linux 系统中用来删除文件和目录的命令。
  2. -r :递归删除,表示不仅删除文件,还会删除文件夹及其中的所有内容。
  3. -f :强制删除,表示即使文件或目录是只读的,也强制删除,不会提示确认。
  4. CentOS-Base.repo :指定要删除的文件名,这里是 CentOS-Base.repo 文件。

5.java 安装完成

which java
image
whereis java

5.配置 JAVA 环境变量 并找到路径

image

vim .bash_profile

add

Soure .bash_profile

让这个环境变量生效。然后其他2台也一样配置

2. 在 IP:192.168.5.128安装FE+BE数据库

  1. 创建 data 目录 并 解压
    image

tar xf StarRocks-3.4.1-centos-amd64.tar.gz -C /data

这个命令使用 tar 工具来解压一个 .tar.gz 文件。具体解释如下:

  1. tartar 是一个用于压缩和解压文件的命令行工具。它常用来打包文件或解压归档文件。
  2. x :表示解压操作。 tar 命令可以用来创建归档、解压归档、查看归档内容等。 x 表示解压归档。
  3. f :表示后面跟的是归档文件的名称, ftar 知道它接下来的参数是文件名。
  4. StarRocks-3.4.1-centos-amd64.tar.gz :这是要解压的文件名。它是一个压缩文件,包含了 StarRocks 软件的 CentOS 版本的二进制文件。
  5. -C /data-C 选项告诉 tar 将文件解压到指定目录 /data 。这意味着解压后的文件将被放置在 /data 目录中。

2.设置软路由

  1. 查看指定用户的信息
    id StarRocks1

  2. 查看指定用户的信息

cd /data/starrocks/fe/conf
vim fe.conf



Soure .bash_profile

5.配置 be.conf
image

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 如下
image

防火墙端口配置
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

image

5. 在 IP:192.168.5.130安装BE数据库

配置 be.conf 如下
image

防火墙端口配置
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

image

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 都可以 ,

链接方式
image

连接成功
image

完成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”

);
image

节点数 确认

1赞

老师您这写的很详细啊!来加入我们的布道师计划吧:来领奖啦!StarRocks 社区 2025 布道师计划正式开启
我这就算你投稿啦~

感谢已经提交,后面多多写

1赞

大佬给力! :muscle: