flink application模式下,基于yarn实现高可用。

参数 yarn.resourcemanager.recovery.enabled 详解

1. 作用

yarn.resourcemanager.recovery.enabled 是 YARN 的一个关键配置参数,用于 控制 ResourceManager(RM)是否在重启后恢复之前的状态
true:启用恢复机制,RM 重启后会从持久化存储(如 ZooKeeper 或 HDFS)中恢复之前的应用程序和节点管理器的状态。
false(默认值):禁用恢复机制,RM 重启后会丢失所有运行中的任务信息,所有应用程序(如 Flink、Spark 等)都会失败。


2. 适用场景

YARN HA(高可用)模式:在 RM 主备切换时,新激活的 RM 需要从存储中恢复状态,否则会导致任务丢失。
RM 维护或意外重启:如果 RM 因升级或崩溃重启,启用恢复可以避免任务中断。


3. 依赖存储

恢复机制需要配置持久化存储(通过 yarn.resourcemanager.store.class 指定):
基于 ZooKeeper(推荐)

<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>

基于 HDFS(较少使用):

<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore</value>
</property>

4. 对 Flink on YARN 的影响

启用恢复(true
• RM 切换或重启后,Flink 的 ApplicationMaster(AM)会重新注册到 RM,任务可能继续运行(需配合 Flink HA)。
• 如果 Flink 也配置了 HA(如 ZooKeeper),JobManager 可恢复任务状态。
禁用恢复(false
• RM 重启后,所有应用程序(包括 Flink AM)会被终止,任务失败且无法自动恢复。


5. 相关参数
参数说明
yarn.resourcemanager.ha.enabled是否启用 RM 高可用(需配合 recovery.enabled=true
yarn.resourcemanager.ha.rm-ids指定 RM 的 HA ID(如 rm1,rm2
yarn.resourcemanager.zk-addressZooKeeper 地址(用于状态存储)

6. 配置示例
<!-- 启用 RM 状态恢复 -->
<property>
  <name>yarn.resourcemanager.recovery.enabled</name>
  <value>true</value>
</property>
<!-- 使用 ZooKeeper 存储状态 -->
<property>
  <name>yarn.resourcemanager.store.class</name>
  <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!-- 配置 ZooKeeper 地址 -->
<property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>zk1:2181,zk2:2181,zk3:2181</value>
</property>

7. 总结

必须启用:在 YARN HA 或需要 RM 故障恢复的场景下,必须设置 yarn.resourcemanager.recovery.enabled=true
与 Flink HA 协同:仅 RM 恢复不够,Flink 还需配置 high-availability(如 ZooKeeper)以实现任务级恢复。
默认风险:若未启用,RM 重启会导致所有任务失败(包括 Flink、Spark 等)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值