1、Flink主节点TaskManager启动分析:
TaskManager是Flink的worker节点,它负责Flink中本机slot资源的管理以及具体task的执行。
TaskManager上的基本资源单位是slot,一个作业的task最终会部署在一个TM的slot上运行,TM会负责维护本地的slot资源列表,并来与FlinkMaster和JobManager通信。
根据前面的启动分析:TaskManager的启动主类:TaskManagerRunner。
2、源码分析
代码执行的大致流程如下:
TaskManagerRunner.main()
runTaskManagerSecurely(args, ResourceID.generate());
# 加载配置
Configuration configuration = loadConfiguration(args);
# 启动 TaskManager
runTaskManagerSecurely(configuration, resourceID);
# 启动 TaskManager
runTaskManager(configuration, resourceID, pluginManager);
# 构建 TaskManagerRunner 实例
taskManagerRunner = new TaskManagerRunner(...);
# 初始化一个线程池
this.executor = Executors.newScheduledThreadPool(....)
&nb

本文详细解读了Flink中TaskManager的启动过程,包括关键服务的构建、TaskExecutor的启动、心跳管理以及与JobManager的交互。不同于HDFS,TaskManager主动发送心跳,展示了Flink主从架构和资源管理机制的工作原理。
最低0.47元/天 解锁文章
1万+





