更新时间:2024-11-12 GMT+08:00

退服和入服MRS角色实例

MRS集群支持将数据存储在不同Core节点,某个Core或Task节点出现问题时,可能导致整个集群状态显示为“异常”,用户可以在MRS指定角色实例退服,使退服的角色实例不再提供服务。

在排除故障后,可以将已退服的角色实例入服。

MRS集群支持退服、入服的角色实例包括:
  • HDFS的DataNode角色实例
  • Yarn的NodeManager角色实例
  • HBase的RegionServer角色实例
  • ClickHouse的ClickHouseServer角色实例(MRS 3.1.2及之后版本支持)
  • IoTDB的IoTDBServer角色实例
  • Kafka的Broker角色实例(MRS 2.x及之前版本、MRS 3.5.0及之后版本支持)

约束和限制

  • 已经退服的角色实例,必须执行入服操作启动该实例,才能重新使用。
  • ClickHouseServer实例退服约束条件请参考缩容ClickHouseServer约束限制
  • DataNode入服退服:
    • 默认情况下,当DataNode数量少于或等于HDFS的副本数时,不能执行退服操作。若HDFS副本数为3时,则系统中少于4个DataNode,将无法执行退服,Manager在执行退服操作时会等待30分钟后报错并退出执行。
    • 由于MapReduce任务执行时,会生成一些副本数为10的文件,此时若DataNode实例数少于10时,将无法进行退服操作。
    • 如果退服前,DataNode节点的机架数(机架数由各DataNode节点所配置的“机架”的名称数量决定)大于1;而退服部分DataNode后,剩余的DataNode节点的机架数变为1,则此次退服将会失败。所以需要在退服前评估退服操作对机架数的影响,以调整退服的DataNode节点。
    • 在退服多个DataNode时,如果每个DataNode存储的数据量较大,如果执行选择多个DataNode同时退服,则很有可能会因超时而退服失败。为了避免这种情况,建议每次退服仅退服1个DataNode,进行多次退服操作。
  • 当IoTDBServer数量少于等于集群配置的Region副本数(默认值为“3”)时,不能执行退服操作。
  • Broker入服退服:(MRS 3.5.0及之后版本支持)
    • 在退服Broker时,如果退服后剩余Broker的个数小于Kafka服务内置Topic副本个数(默认3)时,将无法执行退服,此场景下如果强制删除实例,将会导致服务功能不可用。
    • 在退服多个Broker时,如果每个Broker维护的Topic分区数据量较大,如果执行选择多个Broker同时退服,则有可能会因超时而退服失败。为了避免这种情况,建议每次仅退服一个Broker,进行多次退服操作。
    • 在退服Broker时,可以在KafkaUI界面查看分区迁移进度,如果观察到迁移进度过慢,可以在业务低峰期间,动态调整分区迁移流量,如果退服过程影响业务流量,可以调小分区迁移流量,设置取消正在执行的分区迁移任务。
    • 在退服入服Broker的过程中,建议不要删除Topic,否则可能会导致迁移任务的元数据残留。
    • 在新增Broker实例或者入服Broker后,最晚10分钟后(可以通过在Manager界面调整Kafka组件的“auto.reassign.check.interval.ms”参数来控制触发均衡的时间)触发分区均衡操作。

前提条件

  • 如果通过MRS管理控制台操作,需要已完成IAM用户同步(在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步)
  • 如果通过Manager界面操作,需要已登录MRS集群Manager界面,详情请参考访问MRS集群Manager
  • 如果当前退服DataNode节点,退服前需要进行健康检查,步骤如下。
    1. 使用客户端用户登录客户端安装节点,并切换到客户端安装目录。
    2. 如果是安全集群,需要使用hdfs用户进行权限认证。
      source bigdata_env               #配置客户端环境变量 
      kinit hdfs                       #设置kinit认证 
      Password for hdfs@HADOOP.COM:    #输入hdfs用户登录密码 
    3. 执行hdfs fsck / -list-corruptfileblocks,检查返回结果。
      • 如果结果为“...has 0 CORRUPT files”表示健康检查成功。
      • 如果结果不是“...has 0 CORRUPT files”,并返回损坏的文件名称,请执行以下操作删除损坏的文件。
        hdfs dfs -rm 损坏的文件名称

        删除文件为高危操作,在执行操作前请务必确认对应文件是否不再需要。

通过管理控制台退服或入服实例

  1. 登录MRS管理控制台。
  2. 选择“现有集群”,选中一个运行中的集群并单击集群名称,进入集群信息页面。
  3. 在集群详情页,单击“组件管理”。
  4. 单击服务列表中相应服务。
  5. 单击“实例”页签。
  6. 勾选指定角色实例名称前的复选框。
  7. 选择“更多 > 退服”或“入服”执行相应的操作。

    图1 退服实例

    实例退服操作未完成时在其他浏览器窗口重启集群中相应服务,可能导致MRS提示停止退服,实例的“操作状态”显示为“已启动”。实际上后台已将该实例退服,请重新执行退服操作同步状态。

通过Manager退服或入服实例

  1. 登录Manager页面,进入待操作组件实例页签。

    • MRS 3.x及之后版本:选择“集群 > 服务”,单击服务视图中指定的服务名称,并选择“实例”页签。
    • MRS 2.x及之前版本:单击“服务管理”,单击服务列表中指定的服务名称,并选择“实例”页签。

  2. 勾选指定的待退服角色实例。
  3. 在“更多”选择“退服”或“入服”。

    输入当前登录的用户密码确认身份,单击“确定”。

    勾选操作影响,单击“确定”,执行相应的操作。

    实例退服操作未完成时在其他浏览器窗口重启集群中相应服务,可能导致MRS提示停止退服,实例的“操作状态”显示为“已启动”。实际上后台已将该实例退服,请重新执行退服操作同步状态。