StarRocks 安装与配置

Posted hyunbar777

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StarRocks 安装与配置相关的知识,希望对你有一定的参考价值。

StarRocks

1、StarRocks简介

下载地址​:https://www.starrocks.com/zh-CN/download

StarRocks

特点:

StarRocks


使用场景:

StarRocks

1.1 StarRocks介绍

  • StarRocks是新一代极速全场景​MPP数据库
  • StraRocks充分吸收关系型OLAP数据库和分布式存储系统在大数据时代的优秀研究成果,在业界实践的基础上,进一步改进优化、升级架构,并增添了众多全新功能,形成了全新的企业级产品。
  • StarRocks致力于构建极速统一分析体验,满足企业用户的多种数据分析场景,支持多种数据模型(明细模型、聚合模型、更新模型),多种导入方式(批量和实时),可整合和接入多种现有系统(Spark、Flink、Hive、 ElasticSearch)。
  • StarRocks兼容mysql协议,可使用MySQL客户端和常用BI工具对接StarRocks来进行数据分析。
  • StarRocks采用​分布式架构​,对数据表进行水平划分并以多副本存储。集群规模可以灵活伸缩,能够支持10PB级别的数据分析; 支持MPP框架,并行加速计算; 支持多副本,具有弹性容错能力。
  • StarRocks采用​关系模型​,使用严格的数据类型和列式存储引擎,通过编码和压缩技术,降低读写放大;使用向量化执行方式,充分挖掘多核CPU的并行计算能力,从而显著提升查询性能。

1.2 StarRocks适合什么场景

StarRocks可以满足企业级用户的多种分析需求,包括OLAP多维分析、定制报表、实时数据分析和Ad-hoc数据分析等。具体的业务场景包括:

  • OLAP多维分析
  • 用户行为分析
  • 用户画像、标签分析、圈人
  • 高维业务指标报表
  • 自助式报表平台
  • 业务问题探查分析
  • 跨主题业务分析
  • 财务报表
  • 系统监控分析
  • 实时数据分析
  • 电商大促数据分析
  • 教育行业的直播质量分析
  • 物流行业的运单分析
  • 金融行业绩效分析、指标计算
  • 广告投放分析
  • 管理驾驶舱
  • 探针分析APM(Application Performance Management)
  • 高并发查询
  • 广告主报表分析
  • 零售行业渠道人员分析
  • SaaS行业面向用户分析报表
  • Dashbroad多页面分析
  • 统一分析
  • 通过使用一套系统解决多维分析、高并发查询、预计算、实时分析、Adhoc查询等场景,降低系统复杂度和多技术栈开发与维护成本。​

1.3 StarRocks基本概念

  • FE​:FrontEnd简称FE,是StarRocks的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。
  • BE​:BackEnd简称BE,是StarRocks的后端节点,负责数据存储,计算执行,以及compaction,副本管理等工作。
  • Broker​:StarRocks中和外部HDFS/对象存储等外部数据对接的中转服务,辅助提供导入导出功能。
  • StarRocksManager​:StarRocks的管理工具,提供StarRocks集群管理、在线查询、故障查询、监控报警的可视化工具。
  • Tablet​:StarRocks中表的逻辑分片,也是StarRocks中副本管理的基本单位,每个表根据分区和分桶机制被划分成多个Tablet存储在不同BE节点上。

1.4 StarRocks系统架构

系统架构图

StarRocks


组件介绍

StarRocks集群由FE和BE构成, 可以使用MySQL客户端访问StarRocks集群。

FE

FE接收MySQL客户端的连接, 解析并执行SQL语句。

  • 管理元数据, 执行SQL DDL命令, 用Catalog记录库, 表, 分区, tablet副本等信息。
  • FE高可用部署, 使用复制协议选主和主从同步元数据, 所有的元数据修改操作, 由FE leader节点完成, FE follower节点可执行读操作。元数据的读写满足顺序一致性。FE的节点数目采用2n+1, 可容忍n个节点故障。 当FE leader故障时, 从现有的follower节点重新选主, 完成故障切换。
  • FE的SQL layer对用户提交的SQL进行解析, 分析, 改写, 语义分析和关系代数优化, 生产逻辑执行计划。
  • FE的Planner负责把逻辑计划转化为可分布式执行的物理计划, 分发给一组BE。
  • FE监督BE, 管理BE的上下线, 根据BE的存活和健康状态, 维持tablet副本的数量。
  • FE协调数据导入, 保证数据导入的一致性。

BE

  • BE管理tablet副本, tablet是table经过分区分桶形成的子表, 采用列式存储。
  • BE受FE指导, 创建或删除子表。
  • BE接收FE分发的物理执行计划并指定BE coordinator节点, 在BE coordinator的调度下, 与其他BE worker共同协作完成执行。
  • BE读本地的列存储引擎获取数据,并通过索引和谓词下沉快速过滤数据。
  • BE后台执行compact任务, 减少查询时的读放大。
  • 数据导入时, 由FE指定BE coordinator, 将数据以fanout的形式写入到tablet多副本所在的BE上。

2、部署

2.0 包目录内容

StarRocks-XX-1.0.0
├── be # BE目录
│ ├── bin
│ │ ├── start_be.sh # BE启动命令
│ │ └── stop_be.sh # BE关闭命令
│ ├── conf
│ │ └── be.conf # BE配置文件
│ ├── lib
│ │ ├── starrocks_be # BE可执行文件
│ │ └── meta_tool
│ └── www
├── fe # FE目录
│ ├── bin
│ │ ├── start_fe.sh # FE启动命令
│ │ └── stop_fe.sh # FE关闭命令
│ ├── conf
│ │ └── fe.conf # FE配置文件
│ ├── lib
│ │ ├── starrocks-fe.jar # FE jar包
│ │ └── *.jar # FE 依赖的jar包
│ └── webroot
└── udf

2.1 部署FE

2.1.1 FE的基本配置

FE的配置文件为​StarRocks-XX-1.0.0/fe/conf/fe.conf​, 默认配置已经足以启动集群, 有经验的用户可以查看手册的系统配置章节, 为生产环境定制配置,为了让用户更好的理解集群的工作原理, 此处只列出基础配置。

2.1.2 环境准备

准备三台物理机, 需要以下环境支持:

  • Linux (Centos 7+)
  • Java 1.8+

CPU需要支持AVX2指令集,​cat /proc/cpuinfo |grep avx2​有结果输出表明CPU支持,如果没有支持,建议更换机器,StarRocks使用向量化技术需要一定的指令集支持才能发挥效果。

将StarRocks的二进制产品包分发到目标主机的部署路径并解压,可以考虑使用新建的StarRocks用户来管理。

StarRocks

2.1.3 FE单实例部署

(1)解压tar包

[root@hadoop01 software]# tar -zxvf StarRocks-2.0.1.tar.gz -C /data/

(2)部署FE,修改配置文件,添加jvm参数,建议-Xmx参数设置到16G以上

[root@hadoop01 software]# cd /data/StarRocks-2.0.1/fe/conf/

[root@hadoop01 conf]# vim fe.conf
JAVA_OPTS = "-Xmx4096m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$STARROCKS_HOME/log/fe.gc.log"

StarRocks

(3)创建元数据目录

[root@hadoop01 conf]# cd ..

[root@hadoop01 fe]# mkdir -p meta

注意:mkdir -p meta (1.19.x及以前的版本需要使用mkdir -p doris-meta)

StarRocks

(4)分发给hadoop02,hadoop03

[root@hadoop01 module]# scp -r StarRocks-2.0.1/ hadoop02:/data/
[root@hadoop01 module]# scp -r StarRocks-2.0.1/ hadoop03:/data/

(5)启动hadoop02 FE节点

[root@hadoop02 fe]# bin/start_fe.sh --daemon

StarRocks

(6)确认启动FE启动成功

  • 查看日志log/fe.log确认。
  • 如果FE启动失败,可能是由于端口号被占用,修改配置文件conf/fe.conf中的端口号http_port。
  • 使用jps命令查看java进程确认"StarRocksFe"存在。
  • 使用浏览器访问8030端口, 打开StarRocks的WebUI, 用户名为root, 密码为空。

StarRocks


StarRocks

2.1.4 使用MySQL客户端访问FE

(1)启动mysql客户端,访问FE,查看FE状况

[root@hadoop02 fe]# mysql -h hadoop02 -uroot -P9030
mysql> SHOW PROC /frontends\\G

注意:这里默认root用户密码为空,端口为fe/conf/fe.conf中的query_port配置项,默认为9030

(2)查看FE状态

StarRocks

  • Role为FOLLOWER说明这是一个能参与选主的FE;
  • IsMaster为true,说明该FE当前为主节点。

如果MySQL客户端连接不成功,请查看log/fe.warn.log日志文件,确认问题。由于是初次启动,如果在操作过程中遇到任何意外问题,都可以删除并重新创建FE的元数据目录,再从头开始操作

2.1.5 FE的高可用集群部署

FE的高可用集群采用​主从复制架构,​ 可避免FE单点故障. FE采用了类raft的bdbje协议完成选主, 日志复制和故障切换. 在FE集群中, 多实例分为两种角色: ​follower​和​observer​;

  • 前者为复制协议的可投票成员, 参与选主和提交日志, 一般数量为奇数(2n+1), 使用多数派(n+1)确认, 可容忍少数派(n)故障;
  • 而后者属于非投票成员, 用于异步订阅复制日志, observer的状态落后于follower, 类似其他复制协议中的learner角色。

FE集群从follower中自动选出master节点, 所有更改状态操作都由master节点执行, 从FE的master节点可以读到最新的状态. 更改操作可以从非master节点发起, 继而转发给master节点执行,  非master节点记录最近一次更改操作在复制日志中的LSN, 读操作可以直接在非master节点上执行, 但需要等待非master节点的状态已经同步到最近一次更改操作的LSN, 因此读写非Master节点满足顺序一致性. Observer节点能够增加FE集群的读负载能力, 时效性要求放宽的非紧要用户可以读observer节点。

FE节点之间的时钟相差不能超过5s, 使用NTP协议校准时间。

一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。

配置如下:

(1)添加其他FE节点,角色也分为​FOLLOWER,OBSERVER

使用MySQL客户端连接已有的FE,  添加新实例的信息,信息包括角色、ip、port:

mysql> ALTER SYSTEM ADD FOLLOWER "hadoop03:9010";
mysql> ALTER SYSTEM ADD OBSERVER "hadoop02:9010";

(2)启动hadoop03,hadoop01 FE节点,第一次启动需指定--helper参数,后续再启动无需指定此参数

[root@hadoop03 fe]# bin/start_fe.sh --helper hadoop01:9010 --daemon
[root@hadoop01 fe]# bin/start_fe.sh --helper hadoop01:9010 --daemon

FE节点之间需要两两互联才能完成复制协议选主, 投票,日志提交和复制等功能。FE节点首次启动时,需要指定现有集群中的一个节点作为helper节点, 从该节点获得集群的所有FE节点的配置信息,才能建立通信连接,因此首次启动需要指定--helper参数:

当FE再次启动时,无须指定--helper参数,因为FE已经将其他FE的配置信息存储于本地目录, 因此可直接启动:

./bin/start_fe.sh --daemon

(3)全部启动完毕后,再使用mysql客户端查看FE的状况,alive全显示true则无问题

mysql> SHOW PROC /frontends\\G

节点的Alive显示为true则说明添加节点成功

(4)节点的Alive显示为true则说明添加节点成功

alter system drop follower "fe_host:edit_log_port";
alter system drop observer "fe_host:edit_log_port";

2.2 部署BE

2.2.1 单点部署

(1)部署BE,用户可以使用命令直接将BE添加到集群中,一般至少布置3个BE,每个BE实例添加步骤相同

[root@hadoop02 module]# cd StarRocks-2.0.1/be/

[root@hadoop02 be]# mkdir -p storage

(2)使用mysql客户端添加hadoop02对应be节点

mysql> ALTER SYSTEM ADD BACKEND "hadoop02:9050";

这里IP地址为和priority_networks设置匹配的IP,portheartbeat_service_port,默认为9050

如出现错误,需要删除BE节点,应用下列命令:

alter system decommission backend "be_host:be_heartbeat_service_port";

(3)添加完毕后,启动hadoop02 BE节点

[root@hadoop02 be]# bin/start_be.sh --daemon

(4)查看BE状况,也是同样alive为true是正常运行

mysql> SHOW PROC /backends\\G

2.2.2 BE集群部署

(1)同样步骤在hadoop03,hadoop01部署BE,并添加节点

[root@hadoop03 module]# cd StarRocks-2.0.1/be/
[root@hadoop03 be]# mkdir -p storage
[root@hadoop01 module]# cd StarRocks-2.0.1/be/
[root@hadoop01 be]# mkdir -p storage
mysql> ALTER SYSTEM ADD BACKEND "hadoop03:9050";
mysql> ALTER SYSTEM ADD BACKEND "hadoop01:9050";
[root@hadoop03 be]# bin/start_be.sh --daemon
[root@hadoop01 be]# bin/start_be.sh --daemon

StarRocks


StarRocks

2.3 部署Broker

(1)部署Broker,此角色主要用于后续Broker load使用,启动安装目录的Broker服务

[root@hadoop02 StarRocks-2.0.1]# cd apache_hdfs_broker/
[root@hadoop02 apache_hdfs_broker]# bin/start_broker.sh --daemon
[root@hadoop03 StarRocks-2.0.1]# cd apache_hdfs_broker/
[root@hadoop03 apache_hdfs_broker]# bin/start_broker.sh --daemon
[root@hadoop01 StarRocks-2.0.1]# cd apache_hdfs_broker/
[root@hadoop01 apache_hdfs_broker]# bin/start_broker.sh --daemon

(2)使用mysql添加对应节点

mysql> ALTER SYSTEM ADD BROKER broker1 "hadoop02:8000";
mysql> ALTER SYSTEM ADD BROKER broker2 "hadoop03:8000";
mysql> ALTER SYSTEM ADD BROKER broker3 "hadoop01:8000";

(3)查看状态

mysql> SHOW PROC "/brokers"\\G



以上是关于StarRocks 安装与配置的主要内容,如果未能解决你的问题,请参考以下文章

在Ubuntu20.04安装StarRocks On Docker并在DataGrip配置JDBC协议连接容器内StarRocks2.3.2

在Ubuntu20.04安装StarRocks On Docker并在DataGrip配置JDBC协议连接容器内StarRocks2.3.2

springboot集成starrocks以及采用flink实现mysql与starrocks亚秒级同步

StarRocks 简介

Seatunnel实战:hive_to_starrocks

StarRocks 3.0 集群安装手册