Starrocks集群部署

背景:最近几年OLAP数据库可谓是百家争鸣,许多产品都陆陆续续的展现出来,不过最近据说StarRocks的综合能力比较好,对比于Clickhouse这种强大的竞品也毫不逊色!

下方是官方给出的一些资料介绍,我这里截取了几张比较重要的图(官方文档传送门:StarRocks @ StarRocks_intro @ StarRocks DocsStarRockshttps://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro

1.发展路程

2.生态情况

3.ClickHouse对比StarRocks

 下面是集群的搭建过程以及遇到的坑:

一、下载官方的tar包

这里有社区版和收费版,是国内百度开源的一款产品并且有一定的商业性质。和阿里云DataX走的路线是一样的,有开源和收费版本!

我这里并没有下载最新版2.1,而是1.9版的最新版

二、在Linux部署StarRocks

1.首先需要Linux需要JDK环境,建议使用jdk8

安装之前先使用命令检查CPU是否支持,有信息输出则支持,没信息输出则不支持建议更换机器

cat /proc/cpuinfo |grep avx2

2.解压安装包

tar -zxvf StarRocks-1.19.7.tar.gz -C ../module

3.编辑fe.conf 根据实际情况分配内存资源

 官方默认是8G,可根据实际情况调整,我这里就不改了

 4.fe目录下创建文件夹 meta

mkdir -p meta

5.启动fe进程

/opt/module/StarRocks-1.19.7/fe/bin/start_fe.sh --daemon

 

6.使用mysql连接查看fe节点信息

mysql -h hadoop102 -uroot -P9030

SHOW PROC '/frontends'\G

 这里出现问题了:明明我的nat模式下主机ip是192.168.1.102但是starrocksfe节点却显示192.168.122.1,这个问题疑惑了我很久,在官网论坛寻找的解决方案

都说是配置这两个参数能有效果

 但是结果不尽人意

 

但是我还不死心,总感觉自己配错了,于是把所有可能出现的情况全部配置了一遍

在fe.conf文件中:

方案1、什麽都不添加 mysql客户端正常启动 但是SHOW PROC '/frontends'\G ip显示192.168.122.1
方案2、priority_networks = 192.168.1.102 mysql客户端无法启动
方案3.、frontend_address = 192.168.1.102 mysql客户端无法启动
方案4、priority_networks = 192.168.1.102/24 mysql客户端无法启动
方案5、priority_networks = 192.168.1.102/16 mysql客户端可以启动 但是 SHOW PROC '/frontends'\G 依然显示 192.168.122.1

mysql客户端无法启动如下图所示:

一看到这,所有可能都试了,都没有解决,于是就打起了修改virbr0网卡ip地址的方案

接下来尝试着把virbr0网卡的ip也改为192.168.1.102,其实这样子是可以的,两块网卡使用同一个ip地址(这种技术在业界已经很成熟了)

vim /etc/libvirt/qemu/networks/default.xml

 

跟改为

 

然后重启机器,此时看不到virbr0网卡不显示了,具体情况俺也不清楚,不是这网络方面的行家

再次 SHOW PROC '/frontends'\G 显示正常

 现在只是在hadoop102机器部署了starrocks,现在需要在其他机器部署

将StarRocks-1.19.7分发到hadoop103和hadoop104机器上

7.添加其他节点的fe

 然后hadoop03和hadoop04分别开启fe进程

/opt/module/StarRocks-1.19.7/fe/bin/start_fe.sh --daemon

最后每个机器都有fe进程

ALTER SYSTEM ADD FOLLOWER "hadoop103:9010";
ALTER SYSTEM ADD OBSERVER "hadoop104:9010";

再次在hadoop102上 SHOW PROC '/frontends'\G 就有三台机器都部署了fe节点

 hadoop103和hadoop104的fe节点并不是alive,是官网的一个bug,不影响后续使用

8.部署be节点

be目录下创建storage文件夹

mkdir -p storage

 在每台机器上启动be节点 /opt/module/StarRocks-1.19.7/be/bin/start_be.sh --daemon

添加be节点

ALTER SYSTEM ADD BACKEND "hadoop102:9050";
ALTER SYSTEM ADD BACKEND "hadoop103:9050";
ALTER SYSTEM ADD BACKEND "hadoop104:9050";

成功后如图

9.部署broker节点

每台机器启动broker进程

/opt/module/StarRocks-1.19.7/apache_hdfs_broker/bin/start_broker.sh --daemon

ALTER SYSTEM ADD BROKER broker1 "hadoop102:8000";
ALTER SYSTEM ADD BROKER broker2 "hadoop103:8000";
ALTER SYSTEM ADD BROKER broker3 "hadoop104:8000";

三、使用StarRocks

以下是使用官网的建表样例

创建表 @ Create_table @ StarRocks Docs创建表https://docs.starrocks.com/zh-cn/main/quick_start/Create_table

四、出现错误中重新安装的所有命令(很快捷,部署过程1min以内)

出现问题重装starrocks:

所有机器 cd /opt/module/ && rm -rf StarRocks-1.19.7/
第一台机器 tar -zxvf /opt/software/StarRocks-1.19.7.tar.gz -C /opt/module

第一台机器 cd /opt/module/StarRocks-1.19.7/fe && mkdir -p meta
第一台机器 cd /opt/module/StarRocks-1.19.7/be && mkdir -p storage

第一台机器 /opt/module/StarRocks-1.19.7/fe/bin/start_fe.sh --daemon

第一台机器 mysql -h hadoop102 -uroot -P9030



第一台机器 SHOW PROC '/frontends'\G

第一台机器 xsync /opt/module/StarRocks-1.19.7

fe节点在第二、三台机器首次启动
/opt/module/StarRocks-1.19.7/fe/bin/start_fe.sh --helper hadoop102:9010 --daemon

fe节点在第二、三台机器后续启动
/opt/module/StarRocks-1.19.7/fe/bin/start_fe.sh

所有机器
/opt/module/StarRocks-1.19.7/be/bin/start_be.sh --daemon
/opt/module/StarRocks-1.19.7/apache_hdfs_broker/bin/start_broker.sh --daemon

第一台机器
ALTER SYSTEM ADD FOLLOWER "hadoop103:9010";
ALTER SYSTEM ADD OBSERVER "hadoop104:9010";

ALTER SYSTEM ADD BACKEND "hadoop102:9050";
ALTER SYSTEM ADD BACKEND "hadoop103:9050";
ALTER SYSTEM ADD BACKEND "hadoop104:9050";

ALTER SYSTEM ADD BROKER broker1 "hadoop102:8000";
ALTER SYSTEM ADD BROKER broker2 "hadoop103:8000";
ALTER SYSTEM ADD BROKER broker3 "hadoop104:8000";

SHOW PROC '/frontends'\G
SHOW PROC '/backends'\G
SHOW PROC '/brokers'\G

create database example_db;
use example_db;
CREATE TABLE IF NOT EXISTS detailDemo (
    make_time     DATE           NOT NULL COMMENT "YYYY-MM-DD",
    mache_verson  TINYINT        COMMENT "range [-128, 127]",
    mache_num     SMALLINT       COMMENT "range [-32768, 32767] ",
    de_code       INT            COMMENT "range [-2147483648, 2147483647]",
    saler_id      BIGINT         COMMENT "range [-2^63 + 1 ~ 2^63 - 1]",
    pd_num        LARGEINT       COMMENT "range [-2^127 + 1 ~ 2^127 - 1]",
    pd_type       CHAR(20)        NOT NULL COMMENT "range char(m),m in (1-255) ",
    pd_desc       VARCHAR(500)   NOT NULL COMMENT "upper limit value 65533 bytes",
    us_detail     STRING         NOT NULL COMMENT "upper limit value 65533 bytes",
    relTime       DATETIME       COMMENT "YYYY-MM-DD HH:MM:SS",
    channel       FLOAT          COMMENT "4 bytes",
    income        DOUBLE         COMMENT "8 bytes",
    account       DECIMAL(12,4)  COMMENT "",
    ispass        BOOLEAN        COMMENT "true/false"
) ENGINE=OLAP
DUPLICATE KEY(make_time, mache_verson)
PARTITION BY RANGE (make_time) (
    START ("2022-03-11") END ("2022-03-15") EVERY (INTERVAL 1 day)
)
DISTRIBUTED BY HASH(make_time, mache_verson) BUCKETS 8
PROPERTIES(
    "replication_num" = "3",
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "DAY",
    "dynamic_partition.start" = "-3",
    "dynamic_partition.end" = "3",
    "dynamic_partition.prefix" = "p",
    "dynamic_partition.buckets" = "8"
);

desc detailDemo;



可能出现的问题SHOW PROC '/backends'\G 并不是所有节点都是alive,重启机器过段时间即可,猜想是组件还不够稳定,或者我的机器自身故障,但是重启就能解决,三台机器都重启啊!

五、总结

1.目前只是初步搭建简易版starrocks集群供体验,把这个流程走通。

2.部署过程中发现的问题如下:

1)fe节点显示192.168.122.1问题,并不是主机的ip,这个问题蛮严重的后面会导致部署无法成功

2)fe节点的状态显示有两台是 Alive: false(据说是自身的bug),欢迎其他同学在评论区讨论!

六、展望

希望StarRocks能给用户带来良好的体验,在OLAP领域不断完善!

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值