You need to enable JavaScript to run this app.
导航
集群变配
最近更新时间:2025.03.19 16:44:25首次发布时间:2023.09.06 10:24:16
我的收藏
有用
有用
无用
无用

ByteHouse 企业版支持修改已创建集群的配置,支持通过垂直变配或水平变配两种方式对集群规格或节点数进行修改,本文为您介绍 ByteHouse 进行配置变更的方法和注意事项。

背景信息:垂直变配与水平变配

ByteHouse 配置变更一般分为两种:垂直变配、水平变配。

对比分析

水平变配

垂直变配

变配含义

水平变配(scale out / in):指在集群中新增或减少节点,来增加/减少集群的总体性能。
Image

垂直变配(scale up / down):指调整集群中每个节点的规格,来增加/减少集群的总体性能。
Image

适合场景

垂直扩容已达虚拟机配置上限的场景。

有配置提升的空间诉求的场景。

扩容对性能提升

  • CPU:低于线性;
  • 磁盘/网络吞吐:接近线性;
  • CPU:接近线性;
  • 磁盘吞吐:视虚拟机的磁盘带宽分配和磁盘带宽影响;
  • 网络吞吐:视虚拟机的网络带宽分配;

扩容时长

10分钟级-小时级

分钟级

扩容影响

  • 正在数据重分布的表只读
  • 扩容时集群查询性能也会受影响
  • 集群每个节点会依次重启

注意事项
  • 目前水平扩容功能为 Beta 状态,在扩容关键数据前,建议做好数据备份。
  • 确保集群所有的HaUnique唯一键表的分布式表都指定了shardKey(分片方式)
  • 确保下列集群参数为关闭状态
    1. enable_sharding_optimize=0
    2. distributed_perfect_shard_in_optimizer=0
    3. enable_single_shard_property=0
  • 每个旧节点需要预留存储的容量为最大的一张表的容量。
    例如,表的总大小为 100GB,当前10个节点,缩容为5个节点,则需要在每个旧节点预留 100GB / 5 = 20GB 以上的存储扩建。
  • 水平变配和重分布期间,禁止使用 DDL / DML 语句调整元数据,如新建库表、调整表结构、修改用户等。
  • 扩容时间与节点数、网络速率和磁盘速率都有关系,ByteHouse 产品界面上显示的时间仅供预估参考。
  • 数据重分布期间,表会逐一进入只读状态,同时集群的计算和 IO 负载会较高,预估读性能会下降且不稳定。

垂直变配

前提条件

权限要求:集群管理员,或系统管理员;

操作步骤

  1. 在ByteHouse界面进入:集群管理 > 集群列表,单击对应集群操作列的 显示更多 > 更改规格。
    Image
  2. “更改规格类型”选择“垂直变配”;
    Image
  3. 调整计算资源的规格和存储资源的大小;

    注意

    进行垂直变配时,存储空间只允许扩容,不支持缩容。
    Image

  4. 产生的费用变化实时显示在界面上,更多信息可参考 变更规格计费说明
  5. 点击确定按钮,节点滚动重启,之后配置生效;

    说明

    扩容预计耗时 1-5 分钟,节点数越多,则扩容耗时越久。
    单副本集群扩容时集群将停止运行, 建议在业务低峰期进行。

水平变配【Beta】

前提条件

  • 权限要求:集群管理员,或系统管理员。
  • 版本要求:ByteHouse 2.2.1.130 及以上版本 。
    您可以在ByteHouse的集群管理 > 集群列表 > 集群详情 > 基本信息 > 引擎版本中查看当前引擎版本是否符合要求。如果版本过低,界面会提示水平扩容功能无法使用。
    Image

操作步骤

  1. 在ByteHouse界面进入:集群管理 > 集群列表,单击对应集群操作列的 显示更多 > 更改规格。
    Image

  2. “更改规格类型”选择“水平变配”,并配置水平扩容参数。
    Image

    参数

    配置说明

    水平变配类型

    当前支持扩缩节点数量、副本数量两种方式。

    • 节点数量:修改节点数,副本数不变。
    • 副本数量:修改副本数,节点数会根据修改后的副本数自动变更。

    计算资源

    配置水平变配后的节点/副本数量。
    水平变配场景下支持增加节点数(扩容),也支持减少节点数(缩容)。

    • 如果您增加了节点数量。
      • 扩容时,会自动重分布所有表数据,如果部分表重分布失败,不会影响扩容,您可以稍后再使用“重分布”功能独立重分布这些表。
      • 若当前集群存在HaUniqueMergeTree表,扩容后表拓扑不变,新节点无数据,导入任务无影响;或者您需要使用扩容后更高的读写性能,建议您在扩容完成后手动进行数据重分布。
        手动重分布的操作详情请参见数据重分布
    • 如果您减少了节点数,则还需在页面下方配置重分布设置、高级设置。

    重分布设置 & 高级设置
    (可选)

    如果您减少了节点数,您还需配置重分布设置和高级设置。

    • 重分布:根据情况选择是否打开重分布设置开关。打开开关后,您可以在页面下方查看当前需要重分布的所有表,水平缩容配置提交后,完成规格变更后所有数据表即自动重分布。

      说明

      当前仅支持重分布所有表,不可重分布部分表数据(可能导致数据丢失)。如果您只希望重分布部分表数据,请提交工单联系火山引擎技术支持人员手动处理。

    • 高级设置:配置重分布的最小只读模式,即设置活跃分区范围,后续重分布数据时,仅活跃分区范围内的数据会被禁止写入,通过仅在重分布部分活跃分区期间禁止新数据写入,来大幅降低表只读的时间。

    扩缩容时间

    界面会给出扩缩容/数据重分布的预估时间。您可以根据实际情况,对下游业务发出公告。

    注意

    实际耗时与节点数、网络速率和磁盘速率都有关系,此处界面上显示的时间仅供预估参考。

    变更费用

    为您展示此次变更配置产生的费用变化,参考 变更规格计费说明

  3. 单击页面下方的确认,页面跳转至变配订单确认页面,根据页面提示完成变配付费,集群即开始变配。
    Image
    提集群在“水平变配中”状态时,后台执行任务流程如下:

    扩容情况

    缩容情况

    新增节点时,实际在进行新节点的初始化,并在新节点上新建元数据,此阶段不影响集群读写和性能。
    若集群存在HaUnique表:

    • 会自动创建虚拟集群,且所有HaUnique表自动挂载到虚拟集群,保证扩容前后节点拓扑和数据分布不发生变化。
    • 同时HaUnique表对应的Kafka同步、离线同步、Flink同步等同步任务拓扑不变,新节点不会创建HaUnique表对应的HaKafka和View表。
    1. 阶段1:逐一重分布所有表。
      此阶段正在重分布的表会金进入只读状态,同时集群的计算和 IO 负载会较高,预估读性能会下降且不稳定。如果部分表重分布失败,则不会继续缩容,任务终止
    2. 阶段2:减少节点。
      此阶段不影响集群读写和性能。
  4. 上述步骤完成,集群恢复“运行中”状态。