目录
一、StarRocks整体介绍
1.1、系统架构图:
1.2、FE相关
1.3、BE相关
1.4、数据管理特性
二、简单部署
2.1、部署前准备
2.2、手动部署
2.2.1、部署Leader FE节点
2.2.2、部署BE节点
2.2.3、关联FE、BE,搭建StarRocks集群
2.2.4、给root设置密码:
一、StarRocks整体介绍
StarRocks 是一款高性能分析型数据仓库。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。官网:StarRocks @ StarRocks_intro @ StarRocks Docs
1.1、系统架构图:
1.2、FE相关
FE 是 StarRocks 的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。每个 FE 节点都会在内存保留一份完整的元数据,这样每个 FE 节点都能够提供无差别的服务。
1.2.1、Leader FE
- Leader 从 Follower 中自动选出,进行选主需要集群中有半数以上的 Follower 节点存活。如果 Leader 节点失败,Follower 会发起新一轮选举。
- Leader FE 提供元数据读写服务。只有 Leader 节点会对元数据进行写操作,Follower 和 Observer 只有读取权限。Follower 和 Observer 将元数据写入请求路由到 Leader 节点,Leader 更新完数据后,会同步给 Follower 和 Observer。必须有半数以上的 Follower 节点同步成功才算作元数据写入成功。
1.2.2、Follower
- 只有元数据读取权限,无写入权限。通过回放 Leader 的元数据日志来异步同步数据。
- 参与 Leader 选举,必须有半数以上的 Follower 节点存活才能进行选主。
1.2.3、Observer
- 主要用于扩展集群的查询并发能力,可选部署。
- 不参与选主,不会增加集群的选主压力。
- 通过回放 Leader 的元数据日志来异步同步数据。
1.3、BE相关
BE 是 StarRocks 的后端节点,负责数据存储、SQL执行等工作。
-
数据存储方面,StarRocks 的 BE 节点都是完全对等的,FE 按照一定策略将数据分配到对应的 BE 节点。BE 负责将导入数据写成对应的格式存储下来,并生成相关索引。
-
在执行 SQL 计算时,一条 SQL 语句首先会按照具体的语义规划成逻辑执行单元,然后再按照数据的分布情况拆分成具体的物理执行单元。物理执行单元会在对应的数据存储节点上执行,这样可以实现本地计算,避免数据的传输与拷贝,从而能够得到极致的查询性能。
1.4、数据管理特性
StarRocks 使用列式存储,采用分区分桶机制进行数据管理。
=================待熟悉补充=======
二、简单部署
2.1、部署前准备
2.1.1、检查端口占用情况:
FE:
netstat -tunlp | grep 8030
netstat -tunlp | grep 9020
netstat -tunlp | grep 9030
netstat -tunlp | grep 9010
BE:
netstat -tunlp | grep 9060
netstat -tunlp | grep 8040
netstat -tunlp | grep 9050
netstat -tunlp | grep 8060
需要已经安装了jdk。
2.2、手动部署
一台服务器,部署了一个FE、一个BE。
wget https://releases.starrocks.io/starrocks/StarRocks-3.0.1.tar.gz
tar -zxvf StarRocks-3.0.1.tar.gz
详见:https://docs.starrocks.io/zh-cn/latest/deployment/deploy_manually
部署后结构:
2.2.1、部署Leader FE节点
修改 FE 配置文件 fe/conf/fe.conf:元数据存储路径:
meta_dir = /home/starrocks/data/femeta
启动:
./fe/bin/start_fe.sh --daemon
查看FE日志,检查是否启动成功:
cat fe/log/fe.log | grep thrift
2.2.2、部署BE节点
修改 BE 配置文件 be/conf/be.conf:数据存储路径:
storage_root_path = /home/starrocks/data/bestorage
启动BE:
./be/bin/start_be.sh --daemon
cat be/log/be.INFO | grep heartbeat
2.2.3、关联FE、BE,搭建StarRocks集群
在FE、BE部署好之后,需要将他们关联起来才能使用。如果FE中一个BE都没有,navicat连接会报错:1064 - Backend node not found. Check if any backend node is down.
通过 MySQL 客户端连接到 StarRocks(在本机安装一个,或者找个其他安装了的服务器远程连接也行。)初始用户 root
,密码默认为空。
-- 2.2.3.1、登录
mysql -h 172.20.30.20 -P 9030 -u root
在mysql客户端执行以下命令:(注意命令以;或者\g或者\G结尾)
-- 2.2.3.2、查看 Leader FE 节点状态:
SHOW PROC '/frontends'\G
======2.2.3.3、添加 BE 节点至集群======
-- ALTER SYSTEM ADD BACKEND "<be_address>:<heartbeat_service_port>", "<be2_address>:<heartbeat_service_port>", "<be3_address>:<heartbeat_service_port>";
ALTER SYSTEM ADD BACKEND "172.20.30.20:9050";
-- 2.2.3.4、查看 BE 节点状态
SHOW PROC '/backends'\G
2.2.4、给root设置密码:
SET PASSWORD = PASSWORD('密码');