StarRocks 集群模式搭建

一、StarRocks 集群模型搭建

上篇文章对 StarRocks 进行了简单的介绍及使用 Docker 进行了快速体验,本篇文章进行StarRocks 集群模型的搭建,下面是上篇文章的地址:

StarRocks 极速全场景 MPP 数据库介绍及使用

部署规划

host 主机名 角色
192.168.244.128 node1 FE Leader、BE
192.168.244.130 node2 FE Follower、BE
192.168.244.131 node3 FE Follower、BE

StarRocks 依赖于 JVM ,因此确保安装前已经安装好 Java 环境。

关闭防火墙(可选):

临时:

systemctl stop firewalld        

永久:

systemctl disable firewalld   	

三台服务分别设置 hosts

cat >> /etc/hosts << EOF
192.168.244.128 node1
192.168.244.130 node2
192.168.244.131 node3
EOF

下载安装包

https://www.starrocks.io/download/community

在这里插入图片描述
下载后上传至其中一台服务器中,这里我上传至 node1 服务器中。

解压:

tar -zxvf StarRocks-3.0.0.tar.gz

部署 FE

进入到解压目录下的 fe 下,修改 conf/fe.confJVM 的堆大小,根据实际的大小设置:

vi conf/fe.conf

在这里插入图片描述
注意:如果电脑有多个网卡,可以通过修改 priority_networks 指定:

在这里插入图片描述

创建元数据目录:

mkdir meta

进入到解压目录的 be 下,创建数据存储目录:

mkdir storage

回到解压位置,将改好的 StarRocks 包分发至node2node3 服务器中:

scp -r StarRocks-3.0.0 root@node2:/opt/
scp -r StarRocks-3.0.0 root@node3:/opt/

启动 FE Leader

node1 中启动FE节点,进入到解压目录的 fe 目录下:

bin/start_fe.sh --daemon

查看进程是否存在:

jps

在这里插入图片描述
此时可以使用 MySQL 客户端连接FE,用户名:root ,密码为空,端口:9030

mysql -h node1 -u root -P 9030

在这里插入图片描述

查看FE状况,alivetrue表示正常运行::

SHOW PROC '/frontends'\G

在这里插入图片描述

启动 FE Follower、Observer

下面分别启动 node2node3 节点的 fe,第一次启动需指定--helper参数,后续再启动无需指定此参数 :

bin/start_fe.sh --helper node1:9010 --daemon

在这里插入图片描述

前部启动后,回到 MySQL 客户端:

添加node2node3 服务的 FE节点,角色也分为FOLLOWEROBSERVER

ALTER SYSTEM ADD FOLLOWER "node2:9010";
ALTER SYSTEM ADD FOLLOWER "node3:9010";

补充:如果需要添加 observer 可以使用下面指令:

ALTER SYSTEM ADD OBSERVER "node4:9010";

在这里插入图片描述
再次查看FE状况,alivetrue表示正常运行:

SHOW PROC '/frontends'\G

在这里插入图片描述

启动 BE

进入到解压目录的 be 下,分别启动三台服务的 BE节点:

bin/start_be.sh --daemon

MySQL 客户端连接中加入 BE

ALTER SYSTEM ADD BACKEND "node1:9050";
ALTER SYSTEM ADD BACKEND "node2:9050";
ALTER SYSTEM ADD BACKEND "node3:9050";

在这里插入图片描述

查看BE状况,同样 alivetrue 表示正常运行:

SHOW PROC '/backends'\G

在这里插入图片描述
在这里插入图片描述

二、环境测试

创建数据库:

create database testdb;

在这里插入图片描述

使用数据库:

use testdb;

在这里插入图片描述

创建一个主键模型表 :

CREATE TABLE IF NOT EXISTS grade (
    id BIGINT NOT NULL,
    name STRING NOT NULL,
    sex TINYINT NULL,
	grade INT NULL
) PRIMARY KEY (id)
DISTRIBUTED BY HASH(id) BUCKETS 4;

在这里插入图片描述

创建一个聚合模型表:

CREATE TABLE IF NOT EXISTS agg_grade (
    name VARCHAR(20) NOT NULL COMMENT "name",
    sum_grade BIGINT SUM DEFAULT "0",
    max_grade BIGINT MAX DEFAULT "0"
)
DISTRIBUTED BY HASH(name) BUCKETS 8;

在这里插入图片描述
查看表:

SHOW TABLES;

在这里插入图片描述

写入测试数据:

INSERT INTO grade(id, name, sex, grade) VALUES(1,'小明',1,90);
INSERT INTO grade(id, name, sex, grade) VALUES(1,'小明',1,100);
INSERT INTO grade(id, name, sex, grade) VALUES(2,'小红',1,90);
INSERT INTO grade(id, name, sex, grade) VALUES(3,'小兰',1,90);
INSERT INTO grade(id, name, sex, grade) VALUES(4,'小六',1,90);

INSERT INTO agg_grade(name, sum_grade, max_grade) VALUES('张三',90,90);
INSERT INTO agg_grade(name, sum_grade, max_grade) VALUES('张三',90,90);
INSERT INTO agg_grade(name, sum_grade, max_grade) VALUES('张三',90,90);
INSERT INTO agg_grade(name, sum_grade, max_grade) VALUES('李四',90,90);
INSERT INTO agg_grade(name, sum_grade, max_grade) VALUES('李四',90,90);
INSERT INTO agg_grade(name, sum_grade, max_grade) VALUES('李四',90,90);
INSERT INTO agg_grade(name, sum_grade, max_grade) VALUES('李四',90,90);

查询 grade 表:

SELECT * FROM grade;

在这里插入图片描述
查询 agg_grade 表:

SELECT * FROM agg_grade;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43692950/article/details/130791858