如何实现Dolphinscheduler YARN Task状态跟踪?
背景 Dolphinscheduler针对YARN任务,比如说MR、Spark、Flink,甚至是Shell任务,最初都是会判断如果有YARN任务,解析到applicationId。这样就会不单单以判断客户端进程为单一判断依据,还要根据YARN状态进行最终的Dolphinscheduler任务状态判断。后期,社区对此进行了重构(确实是好的向往,现在已经是半成品),但是导致了一些问题,比如说针对Flink Stream Application模式,这种客户端分离模式会让客户端Shell直接退出,所以现在Dolphinscheduler里面的任务就直接成功了。YARN上的任务还在运行呢,但Dolphinscheduler已经不能追踪到YARN上任务的状态了。 那么,想要实现对于YARN上任务的状态跟踪,可以怎么做呢? 注:以3.2.1版本为例。 Worker Task关系图 首先,让我们来看下DolphinScheduler中Worker Task的关系原理。 AbstractTask: 主要定义了Task的基本生命周期接口,比如说init、handle和cancel AbstractRe...

