缩容集群
用户可以根据业务需求量,通过简单的缩减Core节点或者Task节点,对集群进行缩容,以使MRS拥有更优的存储、计算能力,降低运维成本。
当集群正在进行主备同步操作时,不允许进行缩容操作。
背景信息
目前支持缩容Core节点和Task节点,不支持缩容Master节点。对集群进行缩容时,只需要在界面调整节点个数,MRS会自动选择缩容节点,完成缩容任务。
自动选择缩容节点的策略如下:
- 不允许缩容安装了基础组件(Zookeeper,DBService,KrbServer,LdapServer等)的节点,MRS不会选择这些节点进行缩容。因为这些基础组件是集群运行的基础。
- Core节点是存放集群业务数据的节点,在缩容时必须保证待缩容节点上的数据被完整迁移到其他节点,即完成各个组件的退服之后,才会执行缩容的后续操作(节点退出Manager和删除ECS等)。在选择Core节点时,会优先选择存储数据量较小,且可退服实例健康状态良好的节点,避免节点退服失败。例如在分析集群上,Core节点安装了DataNode,缩容时会优先选择DataNode存储数据量较小且健康状态良好的节点。
Core节点在缩容的时候,会对原节点上的数据进行迁移。业务上如果对数据位置做了缓存,客户端自动刷新位置信息可能会影响时延。缩容节点可能会影响部分HBase on HDFS数据的第一次访问响应时长,可以重启HBase或者对相关的表Disable/Enable来避免。
- Task节点本身不存储集群数据,属于计算节点,不存在节点数据迁移的问题。因此在选择Task节点时,优先选择健康状态为故障、未知、亚健康的节点进行缩容。这些节点实例的健康状态信息可以在MRS上的“实例”管理界面查看。
缩容校验策略
缩容节点选择完成后,为了避免组件退服失败,不同组件提供了不同的退服约束规则,只有满足了所有安装组件的退服约束规则才允许缩容。缩容校验策略如表1所示。
组件名称 |
退服约束规则 |
---|---|
HDFS/DataNode |
规则:缩容后节点数不小于当前HDFS的副本数且HDFS数据总量不超过缩容后HDFS集群总容量的80%,可以执行缩容操作。 原因:确保缩容后剩余空间足够存放现有数据,并预留一部分空间。
说明:
为了保证数据的可靠性,HDFS中每保存一个文件则自动生成1个备份文件,即默认共2个副本。 |
HBase/RegionServer |
规则:除缩容节点外,其他节点RegionServer剩余可用内存的总和,大于所选缩容节点RegionServer当前使用内存的1.2倍。 原因:当一个节点退服时,这个节点上的Region会迁移到其他节点,所以其他节点的可用内存必须足够才能负担起退服节点的Region。 |
Storm/ Supervisor |
规则:缩容后集群slot数足够运行当前已提交的任务。 原因:防止缩容后没有充足的资源运行流处理任务。 |
Flume/FlumeServer |
规则:节点安装了FlumeServer,并且已经配置了Flume任务,则该节点不能删除。 原因:防止误删了已部署的业务程序。 |
指定数量缩容
- 登录MRS管理控制台。
- 选择“集群列表 > 现有集群”,选中一个运行中的集群并单击集群名称,进入集群信息页面。
- 选择“节点管理”页签,在需要缩容的节点组的“操作”列,单击“缩容”,进入缩容集群页面。
只有运行中的集群且集群中的节点都在运行中才能进行该操作。
- 设置“缩容节点数量”,并单击“确定”。
- 缩容集群前需要检查集群安全组是否配置正确,要确保集群入方向安全组规则中有一条全部协议,全部端口,源地址为可信任的IP访问范围的规则。
- 若HDFS存在损坏的数据块,则缩容集群可能出现失败,请联系支持人员处理。
- 页面右上角弹出缩容节点提交成功提示框。
集群缩容过程说明如下:
- 缩容中:集群正在缩容时集群状态为“缩容中”。已提交的作业会继续执行,也可以提交新的作业,但不允许继续缩容和删除集群,也不建议重启集群和修改集群配置。
- 缩容成功:集群缩容成功后集群状态为“运行中”。
- 缩容失败:集群缩容失败时集群状态为“运行中”。用户可以执行作业,也可以重新进行缩容操作。
缩容成功后,可以在集群详情的“节点管理”页签查看集群的节点信息。