更新时间:2025-07-25 GMT+08:00
分享

重启MRS集群组件

MRS集群运行过程中,在修改了组件的配置项、基础资源故障或者服务进程异常等运维场景中,需要对集群内组件进行重启操作。

MRS集群内组件支持普通重启与滚动重启两种方式:

  • 普通重启:直接并发重启集群内所有服务或实例,可能引起业务中断。
  • 滚动重启:在尽可能不中断业务的前提下对相关对象进行的重启操作。与普通重启相比,滚动重启通常不会导致服务业务中断,但是将比普通重启要花费更长的时间,且对应服务的吞吐量、性能等可能会受到影响。为了确保服务重启过程中,尽量减少或者不影响业务运行,可以通过滚动重启来按批次重启服务或实例(对于有主备状态的实例,会先重启备实例,再重启主实例)。

    各组件滚动重启时的业务影响说明如表4所示。

重启集群会导致集群内组件停止对外服务,从而影响上层应用或作业的正常运行,建议在低业务负载时间段进行滚动重启操作。

当前MRS集群中,服务和实例是否支持滚动重启、滚动重启参数说明请参见组件重启参考信息

约束与限制

  • 请在低业务负载时间段进行滚动重启操作。
    • 在滚动重启Kafka服务时, 如果Kafka服务业务吞吐量很高(100MB/s以上的情况下),会出现Kafka服务滚动重启失败的情况。
    • 在滚动重启HBase服务时候,如果原生界面上每个RegionServer上每秒的请求数超过10000,需要增大handle数来预防重启过程中负载过大导致的RegionServer重启失败。
  • 重启前需要观察当前HBase的负载请求数(原生界面上每个RegionServer的请求数如果超过10000,需要增大handle数来预防超出负载)。
  • 请优先使用滚动重启操作来重启实例或服务,并勾选“仅重启配置过期的实例”

对系统的影响

  • 在集群Core节点个数小于6个的情况下,可能会出现业务短时间受影响的情况。
  • 各组件滚动重启时的影响说明如表4所示。

前提条件

  • 如果通过MRS管理控制台操作,需要已完成IAM用户同步(在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步)
  • 如果通过Manager界面操作,需要已登录MRS集群Manager界面,详情请参考访问MRS集群Manager

重启MRS集群组件

  1. 进入MRS集群组件管理页面。

    • 通过管理控制台操作:登录MRS管理控制台,单击集群名称进入集群详情页面,单击“组件管理”
    • 通过Manager操作(MRS 3.x及之后版本):登录Manager页面,选择“集群 > 服务”。
    • 通过Manager操作(MRS 2.x及之前版本):登录Manager页面,单击“服务管理”。

  2. 单击待操作的组件名称,进入详情页面。
  3. 在服务详情页面,单击“更多”,根据实际需要选择“重启服务”或“滚动重启服务”。
  4. 验证操作用户密码(通过Manager操作时需要)并确认操作影响后,单击“确定”进行重启。

    选择滚动重启时可以根据实际需要参考表1配置相关参数。(不同版本参数略有差异,请以实际界面显示为准)

    图1 通过Manager滚动重启服务
    表1 滚动重启配置参数

    参数名称

    示例

    描述

    只重启配置过期的实例

    -

    是否只重启集群内修改过配置的实例。

    部分版本该参数名称为“仅重启配置过期的实例”,请以实际显示为准。

    启用机架策略

    -

    是否启用机架并发滚动重启策略,只对满足机架策略滚动重启的角色(角色支持机架感知功能,且角色下的实例归属于2个或2个以上的机架)生效。

    该参数仅在滚动重启HDFS、Yarn时可设置。

    数据节点滚动重启并发数

    1

    采用分批并发滚动重启策略的数据节点实例每一个批次重启的实例数,默认为1。

    • 该参数仅对同时满足“采用并发滚动策略”和“实例为数据节点”两个条件时才有效。
    • 当启用机架策略时,该参数将失效,集群以机架策略默认配置的最大实例数(默认值为20)作为一个机架内分批并发重启的最大实例数。
    • 该参数仅在滚动重启HDFS、HBase、Yarn、Kafka、Flume等部分组件时可设置,具体以实际界面显示为准。
    • HBase的RegionServer滚动重启的并发数不支持手动配置,会根据RegionServer的节点数自行调整。

      调整规则为30节点以内,每个批次1个节点;300节点以内,每个批次2个节点;300节点以上(含300节点),每个批次1%(向下取整)个节点。

    批次时间间隔

    10

    滚动重启实例批次之间的间隔时间,单位为秒,默认值为0。

    设置批次时间间隔参数可以增加滚动重启期间大数据组件进程的稳定性。

    建议设置该参数为非默认值,例如10。

    退服超时时间

    1800

    角色实例在滚动重启过程中的退服等待时间,单位为秒,该参数仅在滚动重启Hive、Spark时可设置。

    部分角色(例如HiveServer、JDBCServer)在滚动重启前会暂时停止提供服务,该状态下的实例不可再接入新的客户端连接,而已经存在的连接需要等待一段时间才能完成,配置合适的超时时间参数能尽可能地保证业务不中断。

    批次容错阈值

    0

    滚动重启实例批次执行失败容错次数,默认为0,即表示任意一个批次的实例重启失败后,滚动重启任务终止。

  5. 重启或滚动重启服务成功后,对应组件的“运行状态”为“良好”,“配置状态”为“已同步”。

    图2 MRS集群组件列表

组件重启参考信息

当前MRS集群中,服务和实例是否支持滚动重启如表2所示。

表2 服务和实例是否支持滚动重启

服务

实例

是否支持滚动重启

Alluxio

AlluxioJobMaster

AlluxioMaster

ClickHouse

ClickHouseServer

ClickHouseBalancer

CDL

CDLConnector

CDLService

Flink

FlinkResource

FlinkServer

Flume

Flume

MonitorServer

Guardian

TokenServer

HBase

HMaster

RegionServer

ThriftServer

RESTServer

HetuEngine

HSBroker

HSConsole

HSFabric

QAS

HDFS

NameNode

Zkfc

JournalNode

HttpFS

DataNode

Hive

MetaStore

WebHCat

HiveServer

Hue

Hue

Impala

Impalad

StateStore

Catalog

IoTDB

IoTDBServer

Kafka

Broker

KafkaUI

Kudu

KuduTserver

KuduMaster

Loader

Sqoop

Mapreduce

JobHistoryServer

Oozie

oozie

Presto

Coordinator

Worker

Ranger

RangerAdmin

UserSync

TagSync

Spark

JobHistory

JDBCServer

SparkResource

Storm

Nimbus

UI

Supervisor

Logviewer

Tez

TezUI

Yarn

ResourceManager

NodeManager

ZooKeeper

Quorumpeer

实例启动时长如表3所示:

表3 重启时长参考

服务名称

重启时长

启动时长

附加说明

IoTDB

3min

IoTDBServer:3min

-

CDL

2min

  • CDLConnector:1min
  • CDLService:1min

-

ClickHouse

4min

  • ClickHouseServer:2min
  • ClickHouseBalancer:2min

-

HDFS

10min+x

  • NameNode:4min+x
  • DataNode:2min
  • JournalNode:2min
  • Zkfc:2min

x为NameNode元数据加载时长,每千万文件大约耗时2分钟,例如5000万文件x为10分钟。

由于受DataNode数据块上报影响启动时间有一定浮动。

Yarn

5min+x

  • ResourceManager:3min+x
  • NodeManager:2min

x为ResourceManager保留任务数恢复时长,每1万保留任务大约需要1分钟。

Mapreduce

2min+x

JobHistoryServer:2min+x

x为历史任务扫描时长,每10万任务大约2.5分钟。

ZooKeeper

2min+x

quorumpeer:2min+x

x为加载znode节点时长,每100万znode大约1分钟。

Hive

3.5min

  • HiveServer:3min
  • MetaStore:1min30s
  • WebHcat:1min
  • Hive整体服务:3min

-

Spark2x

5min

  • JobHistory2x:5min
  • SparkResource2x:5min
  • JDBCServer2x:5min

-

Flink

4min

  • FlinkResource:1min
  • FlinkServer:3min

-

Kafka

2min+x

  • Broker:1min+x
  • KafkaUI:5 min

x为数据恢复时长,单实例20000 partition启动所需时长大约2分钟。

Storm

6min

  • Nimbus:3mins
  • UI:1min
  • Supervisor:1min
  • Logviewer:1min

-

Flume

3min

  • Flume:2 min
  • MonitorServer:1min

-

Doris

2分钟

  • FE:1min
  • BE:1min
  • DBroker:1min

-

滚动重启组件实例期间对系统影响如表4所示:

表4 滚动重启组件实例期间对系统影响说明

组件名称

业务中断说明

系统受影响的说明

ClickHouse

滚动重启过程中,已经提交的业务如果在超时时间内(默认30分钟)可以执行完成,则无影响。

正在执行滚动重启的节点将会拒绝所有新请求(影响单副本业务和on cluster操作,以及直连当前重启实例的业务),正在执行的请求若在超时时间(默认30分钟)内没有执行完会失败。

DBService

滚动重启过程中,业务均正常。

滚动重启过程中可能会出现DBService主备节点心跳中断告警。

Doris

需要满足以下条件,滚动重启过程中Doris业务才会不中断:

  • 业务需要使用ELB或DBalancer连接Doris提交相关任务。
  • 业务读写的表必须是多副本(推荐3副本)。
  • 已经提交的业务如果在超时时间(默认30分钟)内执行完成,则无影响,否则会失败。

滚动重启中,总的资源量会下降影响任务最大内存/cpu使用量,极端情况任务会出现资源不足失败,对于运行时间超时(滚动默认30分钟)失败的任务,建议进行重试。

Flink

滚动重启过程中,业务均正常。

滚动重启过程中,FlinkServer UI将无法访问。

Flume

满足如下条件才能做到业务不中断、数据不丢失:

  • 需要采用持久化缓存的方式,如使用File Channel。
  • 需要配置Flume级联。
  • Flume需要客户端Sink支持故障迁移或负载均衡模式。
  • 非持久化缓存的Channel会造成数据丢失。
  • 故障迁移过程会造成短暂性能下降。

Guardian

滚动重启过程中,业务均正常。

HBase

滚动重启过程中,HBase的读写业务正常。

  • RegionServer滚动重启期间实时读写业务性能可能下降。
  • HMaster滚动重启过程中,除实时读写(不包括BulkLoad)以外的业务都会受影响。

    创建表(create)

    创建namespace(create_namespace)

    禁用表(disable、disable_all)

    重建表(truncate、truncate_preserve)

    移动region(move)

    下线region(unassign)

    合并region(merge_region)

    分裂region(split)

    开启balance(balance_switch)

    容灾操作(add_peer、remove_peer、enable_table_replication、disable_peer、show_peer_tableCFs、set_peer_tableCFs、enable_peer、disable_table_replication、set_clusterState_active、set_clusterState_standby)

    集群状态查询(status)

HDFS

  • 由于NameNode节点会主备倒换,导致系统在短暂时间内出现无主现象(主备倒换过渡期),可能会出现HDFS服务不可用告警信息,运行的读写任务会报错,但是不会中断业务。
  • 滚动重启DataNode可能导致部分正在读写的数据报错,客户端进行重试读写速率受到一定影响。
  • 滚动重启ZKFC过程中会导致NameNode主备倒换。
  • 滚动重启HDFS时如果启用机架策略,则可能会影响业务正常读写。

当为第三方客户端时,滚动重启过程中无法保证第三方客户端可靠性。

HetuEngine

  • HSFabric的实例至少存在2个,且对接使用的HSFabric也至少存在2个,能够支持滚动重启过程中跨域业务不中断。
  • HSBroker、HSConsole和QAS滚动重启时,HetuEngine业务不中断。
  • 需要保证HetuEngine计算实例中Coordinator和Worker节点都至少为2个才能进行计算实例的滚动重启,计算实例滚动重启不中断业务。
  • HSFabric正在滚动重启的节点会拒绝所有新请求,正在执行的SQL请求若在超时时间(默认30分钟)内没有执行完会失败。
  • 滚动重启过程中,在HSConsole页面不能执行运维操作。
  • HetuEngine计算实例滚动重启时,性能会下降约20%,SQL执行消耗内存超过配置“query_max_total_memory”的80%时,SQL任务会失败。

Hive

滚动重启过程中,执行时间超过退服超时时间的业务可能失败。

  • 如果当前有执行时间超过滚动重启超时时间的任务,在重启过程中有可能出现任务失败,任务失败后重试即可。
  • 滚动重启的节点不再接收新的请求,其他实例节点处理的请求会变多,会占用更多的资源。

Kafka

滚动重启过程中,Kafka多副本的Topic读写业务正常,单副本Topic会中断业务。

  • 禁止进行增删改topic、partition信息操作。
  • 如果Producer中配置acks=1或者acks=0,滚动重启过程中,若副本的数据在30min内没有同步完成,则会强制重启下一个Broker。对于副本刚好在这两个Broker的双副本的Partition,服务端配置中unclean.leader.election.enable的配置值如果是true,那么可能存在数据丢失风险;如果配置值是false,可能导致该Partition一段时间内没有Leader,直到该Broker启动完成。

KrbServer

滚动重启过程中,业务正常。

滚动重启过程中,集群Kerberos认证耗时可能会增加。

LdapServer

滚动重启过程中,业务正常。

滚动重启过程中,集群Kerberos认证耗时可能会增加。

Mapreduce

  • 滚动重启期间可能无法查看任务日志。
  • 单JobHistoryServer实例场景下,停止JobHistoryServer会导致依赖它的其他上层组件全部显示故障。

Ranger

滚动重启过程中,业务均正常。

Ranger的RangerAdmin、RangerKMS、PolicySync实例均为双活配置,滚动重启过程中可轮流对外提供服务,UserSync仅支持一个实例配置,重启过程中无法同步用户。

用户同步周期为五分钟,而UserSync重启时间较短,因此对用户同步的影响较小。

Spark

除列出的几项限制外,其他业务均不受影响。

  • 在HBase进行滚动重启过程中,不能在Spark中创建或删除Spark on HBase表。
  • 在HBase执行滚动重启过程中,会进行HMaster的主备倒换,在HMaster主备倒换期间,Spark on HBase功能不可用。
  • 如果用户使用了Kafka高级API,则在滚动重启过程中,不能保证Spark读写Kafka不中断,以及数据不丢失。
  • ZooKeeper滚动重启过程中,启动spark-beeline会失败。
  • Yarn滚动重启过程中,Spark任务可能造成task级别、stage级别、application级别的重试。
  • Spark的JDBCServer滚动重启时,如果有长时间运行的任务,会将任务终止。

Yarn

  • 滚动升级过程中,由于ResourceManager节点会切主,运行任务会报错,但是不会中断业务。
  • NodeManager滚动重启过程中,提交到该节点的Container可能会重试到其他节点。

Yarn滚动重启过程中,在Yarn上运行的任务可能会因为重试次数过多导致业务异常。

ZooKeeper

滚动重启过程中,ZooKeeper的读写业务正常。

  • ZooKeeper滚动重启会影响ClickHouse业务,实例重启期间会导致ClickHouse表只读,每个quorumpeer实例影响约10秒。
  • ZooKeeper滚动重启会导致Loader HA中ZooKeeper断连,Loader会自行尝试重试3次,每次10秒,如果依旧无法连接ZooKeeper,主LoaderServer会降备,然后重新选主。

相关文档

相关文档