基于 MinIO 部署
本文介绍如何部署和使用 StarRocks 存算分离集群。该功能从 3.0 版本开始支持。
说明
- StarRocks v3.1 版本对存算分离 部署和配置进行了一些更改。如果您正在运行 v3.1 版本或更高版本,请使用本文档。
- 如果您需要部署 v3.0 版本,请使用 v3.0 文档。
- StarRocks 存算分离集群不支持数据备份和恢复。
StarRocks 存算分离集群采用了存储计算分离架构,特别为云存储设计。在存算分离的模式下,StarRocks 将数据存储在对象存储(例如 AWS S3、GCS、OSS、Azure Blob 以及 MinIO)或 HDFS 中,而本地盘作为热数据缓存,用以加速查询。通过存储计算分离架构,您可以降低存储成本并且优化资源隔离。除此之外,集群的弹性扩展能力也得以加强。在查询命中缓存的情况下,存算分离集群的查询性能与存算一体集群性能一致。
在 v3.1 版本及更高版本中,StarRocks 存算分离集群由 FE 和 CN 组成。CN 取代了存算一体集群中的 BE。
相对存算一体架构,StarRocks 的存储计算分离架构提供以下优势:
- 廉价且可无缝扩展的存储。
- 弹性可扩展的计算能力。由于数据不存储在 CN 节点中,因此集群无需进行跨节点数据迁移或 Shuffle 即可完成扩缩容。
- 热数据的本地磁盘缓存,用以提高查询性能。
- 可选异步导入数据至对象存储,提高导入效率。
系统架构
部署 StarRocks 存算分离集群
StarRocks 存算分离集群的部署方式与存算一体集群的部署方式类似,但存算分离集群需要部署 CN 节点而非 BE 节点。本小节仅列出部署 StarRocks 存算分离集群时需要添加到 FE 和 CN 配置文件 fe.conf 和 cn.conf 中的额外配置项。有关部署 StarRocks 集群的详细说明,请参阅 部署 StarRocks。
注意
请勿在配置完成前启动集群。
存算分离部署 FE 配置
FE 配置示例
由于 StarRocks 通过 AWS Signature Version 4 protocol 访问 MinIO,您需要配置以 aws_s3
为前缀的配置项。在所有 FE 节点的配置文件 fe.conf 中添加以下配置项:
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = S3
# 例如 testbucket/subpath
aws_s3_path = <s3_path>
# 例如 us-east1
aws_s3_region = <region>
# 例如 http://172.26.xx.xxx:39000
aws_s3_endpoint = <endpoint_url>
aws_s3_access_key = <minio_access_key>
aws_s3_secret_key = <minio_secret_key>
如果您想在集群创建后手动创建默认存储卷,则只需添加以下配置项:
run_mode = shared_data
cloud_native_meta_port = <meta_port>
enable_load_volume_from_conf = false