记第一次跟踪seatunnel的任务运行过程二——ClientJobExecutionEnvironment的execture方法

前绪

记第一次跟踪seatunnel的任务运行过程

正题

创建LogicalDag

创建一个LogicalDag,根据代码注释理解LogicalDag里维护的就是任务配置文件中的source、transformer、sink。

java 复制代码
LogicalDag logicalDag = getLogicalDag();

本次任务的固定信息

固定本此job的固定信息,其中要注意的就是jarUrls和connectorJarIdentifiers,就是你部署的seatunnel服务下libs下的依赖的第三方jar包,以及connector下的的连接器。job执行用到第三方jar或者connector时就会从这里获取。

java 复制代码
JobImmutableInformation jobImmutableInformation = new JobImmutableInformation(
	Long.parseLong(jobConfig.getJobContext().getJobId()),
	jobConfig.getName(),
	isStartWithSavePoint,
	seaTunnelHazelcastClient.getSerializationService().toData(logicalDag),
	jobConfig,
	new ArrayList<>(jarUrls),
	new ArrayList<>(connectorJarIdentifiers)
);

创建并返回代理对象,过程中完成了任务的提交

根据前面收集到的job信息,创建一个job代理并返回,同时在这个过程中完成job的提交:封装成一个任务,提交给Hazelcast去执行。

java 复制代码
return jobClient.createJobProxy(jobImmutableInformation);

提交任务

jobClient的createJobProxy方法中创建了一个ClientJobProxy对象,在ClientJobProxy的构造函数中完成了job的提交。

java 复制代码
    public ClientJobProxy(
            @NonNull SeaTunnelHazelcastClient seaTunnelHazelcastClient,
            @NonNull JobImmutableInformation jobImmutableInformation) {
        this.seaTunnelHazelcastClient = seaTunnelHazelcastClient;
        this.jobId = jobImmutableInformation.getJobId();
        submitJob(jobImmutableInformation);
    }

submitJob方法

创建一个ClientMessage对象后,构建一个job执行的PassiveCompletableFuture对象submitJobFuture,调用对象的join方法。

结束

任务提交完成,在主流程(ClientJobExecutionEnvironment的execture方法)中等待任务的结果。

java 复制代码
JobResult jobResult = clientJobProxy.waitForJobCompleteV2();
相关推荐
ApacheSeaTunnel6 天前
保姆级 SeaTunnel 入门!再学不会小编当场表演倒立敲代码
大数据·数据集成·seatunnel·技术分享·数据同步
SeaTunnel11 天前
Apache SeaTunnel MySQL CDC 支持按时间启动吗?
大数据·数据库·mysql·开源·apache·seatunnel
ApacheSeaTunnel12 天前
告别手敲 Schema!SeaTunnel 集成 Gravitino 元数据 RestApi 这个新动作有点酷
大数据·ai·seatunnel·技术分享·数据同步·gravitino
SeaTunnel25 天前
Apache SeaTunnel 2025 案例精选重磅发布!
大数据·开源·apache·seatunnel·案例
码农丁丁2 个月前
apache seatunnel 2.3.12 Changelog
apache·seatunnel
SeaTunnel2 个月前
Apache SeaTunnel 如何将 CDC 数据流转换为 Append-Only 模式?
大数据·开源·apache·开发者·seatunnel·转换插件
SeaTunnel3 个月前
结项报告完整版:Apache SeaTunnel 支持 Flink 引擎 Schema Evolution 功能
java·大数据·flink·开源·seatunnel
ApacheSeaTunnel3 个月前
结项报告完整版 | Apache SeaTunnel支持metalake开发
大数据·开源·数据集成·seatunnel·数据同步
SeaTunnel3 个月前
Apache SeaTunnel 支持 Metalake 开发了!避免任务配置敏感信息暴露
大数据·开源·apache·个人开发·数据集成·seatunnel·看开源之夏
ApacheSeaTunnel4 个月前
从小时级到分钟级:多点DMALL如何用Apache SeaTunnel把数据集成成本砍到1/3?
大数据·开源·数据集成·seatunnel·技术分享