存算分离
本主题解答了一些关于存算分离集群的常见问题。
为什么表创建失败?
检查 BE 日志 (be.INFO) 以确定具体原因。常见原因包括:
- 对象存储设置错误(例如,
aws_s3_path、endpoint、authentication)。 - 对象存储服务不稳定或异常。
其他错误:
错误信息:"Error 1064 (HY000): Unexpected exception: Failed to create shards. INVALID_ARGUMENT: shard info cannot be empty"
原因:这通常发生在使用自动桶推断时,没有 CN 或 BE 节点存活。此问题在 v3.2 中已修复。
为什么表创建时间过长?
过多的桶数量(尤其是在分区表中)导致 StarRocks 创建许多 tablets。系统需要为对象存储中的每个 tablet 写入一个 tablet 元数据文件,其高延迟可能会显著增加总创建时间。您可以考虑:
- 减少桶的数量。
- 通过 BE 配置
create_tablet_worker_count增加 tablet 创建线程池大小。 - 检查并解决对象存储中的高写入延迟问题。
为什么删除表后对象存储中的数据没有被清理?
StarRocks 支持两种 DROP TABLE 模式:
DROP TABLE xxx:将表元数据移动到 FE 回收站(数据未删除)。DROP TABLE xxx FORCE:立即删除表元数据和数据。
如果清理失败,请检查:
- 是否使用了
DROP TABLE xxx FORCE。 - 回收站保留参数是否设置过高。参数包括:
- FE 配置
catalog_trash_expire_second - BE 配置
trash_file_expire_time_sec
- FE 配置
- FE 日志中的删除错误(例如,RPC 超时)。如有需要,增加 RPC 超时时间。