十八、Flink源码阅读--JobManager启动过程

本文详细探讨了Flink JobManager在standalone模式下的启动步骤,从start-cluster.sh入口开始,逐步分析了StandaloneSessionClusterEntrypoint类,重点关注了initializeServices方法中的服务初始化,包括webMonitorEndpoint、resourceManager和dispatcher的启动。webMonitor提供Web服务,checkpoint管理和异常恢复;resourceManager处理leader选举,slot管理及与TaskExecutor的交互;dispatcher则负责任务接收和JobMaster的启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文我们详细看下Jm的启动步骤,主要看下stand-alone模式下Jm的启动,在关键步骤是穿插on-yarn模式的说明

入口分析

从flink安装包的bin/start-cluster.sh分析开始,会发现Jm的主类org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint,tm的主类是
org.apache.flink.runtime.taskexecutor.TaskManagerRunner

StandaloneSessionClusterEntrypoint
public static void main(String[] args) { //args --configDir xxx --executionMode cluster
	... 解析参数

	Configuration configuration = loadConfiguration(entrypointClusterConfiguration);
	StandaloneSessionClusterEntrypoint entrypoint = new StandaloneSessionClusterEntrypoint(configuration);
	entrypoint.startCluster();//启动
}

===>

protected void startCluster() {
	LOG.info("Starting {}.", getClass().getSimpleName());
	try {
		configureFileSystems(configuration);

		SecurityContext securityContext = installSecurityContext(configuration);

		securityContext.runSecured((Callable<Void>) () -> {
			runCluster(configuration);//启动cluster

			return null;
		});
	} catch (Throwable t) {
		LOG.error("Cluster initialization failed.", t);

		shutDownAndTerminate(
			STARTUP_FAILURE_RETURN_CODE,
			ApplicationStatus.FAILED,
			t.getMessage(),
			false);
	}
}

===>

protected void runCluster(Configuration configuration) throws Exception {
	synchronized (lock) {
		initializeServices(configuration);//初始化组件

		// write host information into configuration
		con
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值