今天为各位介绍一下 Apache DolphinScheduler 3.2.0云原生的相关新功能,主要分为两个部分:
对于前两个功能,因为K8S本身提供了对各类对象去定义Label的能力,使得用户也可以更好地进行对象的管理。另外,用户也可以去定义节点选择器,将对象调度到指定节点上。这两个功能在生产环境中对用户是有很大的帮助的。因此,3.2.0版本也选择去实现支持这两个功能。日志实时收集其实是对3.1.X版本的改进。之前,Apache DolphinScheduler只会在任K8S任务执行失败的时候去收集末尾起几行错误日志,但显然实时收集全量日志是对用户更加友好的一个功能。我们跑一个K8S类型的任务,来看一下这三点增强的效果(见视频 01:11s-03:06s)。在3.2.0版本中,Apache DolphinScheduler将支持Spark提交到原生K8S集群的模式。以事先定义好的一个Spark on K8S的工作流为例,在这个Spark任务中,我们会发现已经添加了一个新的选择框—Namespace。如果用户选择了Namespace,即它非空时,我们认为用户是期待把这个Spark任务提交到K8S集群上做执行。同样地,在这个任务中,用户也可以去自定义他们的Option,具体可以参考Spark官网,根据自己K8S集群的状态去定义他们的Option。在Spark on K8S的任务中,我们也会实时地收集Driverpod日志,并对Driverpod进行生命周期管理。如果当前任务是执行成功的状态,我们会将Pod删除掉;如果执行失败,Pod会保留在集群中,供用户做诊断分析。