部署StarRocks V3.0单机环境

0    227    1

Tags:

👉 本文共约5548个字,系统预计阅读时间或需21分钟。

环境申请

安装包下载: https://www.mirrorship.cn/zh-CN/download/community

配置操作系统

环境变量配置

配置FE节点

配置FE节点

注意:当一台机器拥有多个 IP 地址时,需要在 FE 配置文件 conf/fe.conf 中设置 priority_networks,为该节点设定唯一 IP。

${STARROCKS_HOME}/fe/conf/fe.conf文件中配置如下内容:

如需在生产环境中对集群进行详细优化配置,参考 FE 参数配置

我这里因为是单节点,所以只配置本地地址:

启动FE节点

运行以下命令启动 FE 节点。

如果由于端口被占用导致 FE 启动失败,可修改配置文件 fe/conf/fe.conf 中的端口号 http_port

检查FE节点

通过运行 jps 命令查看 Java 进程,确认 StarRocksFE 进程是否存在。

通过mysql客户端查看节点信息

  • RoleLEADER 时,当前 FE 节点为选举出的主节点。
  • RoleFOLLOWER 时,当前节点是一个能参与选主的 FE 节点。

如果 MySQL 客户端连接失败,可以通过查看 log/fe.warn.log 日志文件发现问题。

如果在初次部署时遇到任何意外问题,可以在删除并重新创建 FE 的元数据目录后,重新开始部署。

通过在浏览器访问 FE ip:http_port(默认 http_port8030),进入 StarRocks 的 WebUI,用户名为 root,密码为空。

http://172.18.0.14:8030/

部署StarRocks V3.0单机环境

配置BE节点

配置部署 Backend (BE) 节点。

BE 是 StarRocks 的后端节点,负责数据存储以及 SQL 执行等工作。

以下例子仅部署一个 BE 节点。您可以通过重复以下步骤添加多个 BE 节点。

添加BE节点

【温馨提示】

1、FE节点之间的时钟相差不能超过5s, 使用NTP协议校准时间。一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。

2、host 需要与 priority_networks 相匹配,port 需要与 be.conf 文件中的设置的 heartbeat_service_port 相同,默认为 9050

如添加过程出现错误,需要通过以下命令将该 BE 节点从集群移除。

启动BE节点

检查BE节点

示例:

确认BE启动成功

通过 MySQL 客户端确认 BE 节点是否启动成功。

Alivetrue 时,当前 BE 节点正常接入集群。

如果 BE 节点没有正常接入集群,可以通过查看 log/be.WARNING 日志文件排查问题。

如果日志中出现类似以下的信息,说明 priority_networks 的配置存在问题。

如遇到以上问题,可以通过 DROP 错误的 BE 节点,然后重新以正确的 IP 添加 BE 节点的方式来解决。

如果在初次部署时遇到任何意外问题,可以在删除并重新创建 BE 的数据路径后,重新开始部署。

成功部署 StarRocks 集群后,您可以:

部署Broker节点

通过 Broker,StarRocks 可读取对应数据源(如HDFS、S3)上的数据,利用自身的计算资源对数据进行预处理和导入。除此之外,Broker 也被应用于数据导出,备份恢复等功能。

通过以下命令启动 Broker。

Alivetrue 时,当前 Broker 节点正常接入集群。

创建数据库

使用 root 用户创建 example_db 数据库。

注意

在指定数据库名、表名和列名等变量时,如果使用了保留关键字,必须使用反引号 (`) 包裹,否则可能会产生报错。有关 StarRocks 的保留关键字列表,请参见关键字

您可以通过 SHOW DATABASES; 命令查看当前 StarRocks 集群中所有数据库。

说明:与 MySQL 的表结构类似,information_schema 包含当前 StarRocks 集群的元数据信息,但是部分统计信息还不完善。推荐您通过 DESC table_name 等命令来获取数据库元数据信息。

创建表

在新建的数据库中创建表。

StarRocks 支持 多种数据模型,以适用不同的应用场景。以下示例基于 明细表模型 编写建表语句。

更多建表语法,参考 [CREATE TABLE](https://docs.starrocks.io/zh-cn/latest/sql-reference/sql-statements/data-definition/CREATE TABLE) 。

注意

  • 在 StarRocks 中,字段名不区分大小写,表名区分大小写。
  • 建表时,DISTRIBUTED BY 为必填字段。

建表语句说明

排序键

StarRocks 表内部组织存储数据时会按照指定列排序,这些列为排序列(Sort Key)。明细模型中由 DUPLICATE KEY 指定排序列。以上示例中的 recruit_date 以及 region_num 两列为排序列。

注意:排序列在建表时应定义在其他列之前。排序键详细描述以及不同数据模型的表的设置方法请参考 排序键

字段类型

StarRocks 表中支持多种字段类型,除以上示例中已经列举的字段类型,还支持 BITMAP 类型HLL 类型ARRAY 类型,字段类型介绍详见 数据类型章节

注意:在建表时,您应尽量使用精确的类型。例如,整形数据不应使用字符串类型,INT 类型即可满足的数据不应使用 BIGINT 类型。精确的数据类型能够更好的发挥数据库的性能。

分区分桶

PARTITION 关键字用于给表 [创建分区](https://docs.starrocks.io/zh-cn/latest/sql-reference/sql-statements/data-definition/CREATE TABLE#partition_desc)。以上示例中使用 recruit_date 进行范围分区,从 11 日到 15 日每天创建一个分区。StarRocks 支持动态生成分区,详见 动态分区管理为了优化生产环境的查询性能,我们强烈建议您为表制定合理的数据分区计划。

DISTRIBUTED 关键字用于给表 [创建分桶](https://docs.starrocks.io/zh-cn/latest/sql-reference/sql-statements/data-definition/CREATE TABLE#distribution_desc),以上示例中使用 recruit_date 以及 region_num 两个字段通过 Hash 算法创建 8 个桶。

创建表时合理的分区和分桶设计可以优化表的查询性能。有关分区分桶列如何选择,详见 数据分布

数据模型

DUPLICATE 关键字表示当前表为明细模型,KEY 中的列表示当前表的排序列。StarRocks 支持多种数据模型,分别为 明细模型聚合模型更新模型主键模型。不同模型的适用于多种业务场景,合理选择可优化查询效率。

索引

StarRocks 默认会给 Key 列创建稀疏索引加速查询,具体规则见 排序键。支持的索引类型有 Bitmap 索引Bloomfilter 索引 等。

注意:索引创建对表模型和列有要求,详细说明见对应索引介绍章节。

ENGINE 类型

默认 ENGINE 类型为 olap,对应 StarRocks 集群内部表。其他可选项包括 mysqlelasticsearchhivejdbc(2.3 及以后),hudi(2.2 及以后)以及 iceberg,分别代表所创建的表为相应类型的 外部表

查看表信息

您可以通过 SQL 命令查看表的相关信息。

  • 查看当前数据库中所有的表

  • 查看表的结构

示例:

  • 查看建表语句

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
部署StarRocks V3.0单机环境后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部