Flink源码阅读(二)TaskManager

TaskManager简介通过前面的分析可以知道taskManager的入口是org.apache.flink.runtime.taskexecutor.TaskManagerRunner类,而且类上的注释也指明了这一点。This class is the executable entry point for the task manager in yarn or standalone mo...
摘要由CSDN通过智能技术生成

简介

通过前面的分析可以知道taskManager的入口是org.apache.flink.runtime.taskexecutor.TaskManagerRunner类,而且类上的注释也指明了这一点。

This class is the executable entry point for the task manager in yarn or standalone mode.It constructs the related components (network, I/O manager, memory manager, RPC service, HA service)and starts them.

原理

启动

main方法中主要完成一些初始化操作,然后调用runTaskManager(configuration, ResourceID.generate())

public static void runTaskManager(Configuration configuration, ResourceID resourceId) throws Exception {
   
        //主要初始化一堆的service,并新建一个org.apache.flink.runtime.taskexecutor.TaskExecutor
		final TaskManagerRunner taskManagerRunner = new TaskManagerRunner(configuration,resourceId);
		//调用TaskExecutor的start()方法
        taskManagerRunner.start();
}

可以看到虽然TaskManagerRunner是入口类,但主要执行操作的是TaskExecutor类,注释里面也说明了这点

TaskExecutor implementation. The task executor is responsible for the execution of multiple Task.

在TaskExecutor类的构造方法(主要完成一些service的初始化)及start方法执行完毕后,TaskManager启动完成。

执行task

仔细观察TaskExecutor类,可以发现submitTask方法,顾名思义,这个方法是JobManager提交任务的。

public CompletableFuture<Acknowledge> submitTask(
			TaskDeploymentDescriptor tdd,
			JobMasterId jobMasterId,
			Time timeout) {
   

		try {
   
			final JobID jobId = tdd.getJobId();
			final JobManagerConnection jobManagerConnection = jobManagerTable.get(jobId);

			if (jobManagerConnection == null) {
   
				final String message = "Could not submit task because there is no JobManager " +
					"associated for the job " + jobId + '.';

				log.debug(message);
				throw new TaskSubmissionException(message);
			}

			if (!Objects.equals(jobManagerConnection.getJobMasterId(), jobMasterId)) {
   
				final String message = "Rejecting the task submission because the job manager leader id " +
					jobMasterId + " does not match the expected job manager leader id " 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值