Apache Flink JobManager HA机制

1. 简介

在Flink部署架构中,JobManager负责协调Flink任务调度和资源管理。

默认情况下,每个Flink集群都有一个JobManager实例,这会产生单点故障(SPOF single point of failure),如果JobManager进程崩溃,则无法提交新任务且运行中的任务也会失败。

启用JobManager HA后,就可以JobManager崩溃故障中恢复,消除单点故障。目前Flink支持独立集群和YARN集群两种HA配置方式。

YARN集群模式主要依赖YARN的HA机制,具体的行为还依赖YARN版本,本文将主要介绍独立集群的HA机制。

2. 独立集群HA

jobmanager_ha_overview.png
独立集群的JobManager的机制是,一个leader JobManager和多个standby JobManager,当leader JobManager崩溃后,多个standby JobManager选举后产生新的leader JobManager。

leader JobManager和standby JobManager之间没有区别,任何JobManager都可以承担leader或standby角色。

3. 源码分析

3.1 HighAvailabilityMode

public enum HighAvailabilityMode {
   
	NONE(false),
	ZOOKEEPER(true),
	FACTORY_CLASS(true);

	private final boolean haActive;

	HighAvailabilityMode(boolean haActive) {
   
		this.haActive = haActive;
	}
}

Flink定义了三种高可用性模式枚举

  • NONE:非HA模式
  • ZOOKEEPER:基于ZK实现HA
  • FACTORY_CLASS:自定义HA工厂类,该类需要实现HighAvailabilityServicesFactory接口

3.2 HighAvailabilityOptions

HighAvailabilityOptions定义了HA相关配置项

  • HA_MODE:HA模式,可以设置为NONE、ZOOKEEPER,或设置为自定义HA工厂类名
  • HA_CLUSTER_ID:Flink集群id,区分多个Flink集群
  • HA_STORAGE_PATH:Flink储存HA元数据的文件系统路径
  • HA_JOB_MANAGER_PORT_RANGE:JobManager监听端口范围,JobManager在此范围内随机选择一个端口号
  • HA_ZOOKEEPER_QUORUM:ZK集群节点的地址和端口号
  • HA_ZOOKE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值