Skip to content

调度代理任务

wangqi edited this page Jul 12, 2022 · 3 revisions

调度代理

scaleph 对于调度和编排同样存在着很多的使用场景。

DAG 调度

对于由计算引擎执行的离线任务,往往存在上下游依赖关系,只有当前置任务完成后才会触发下游任务执行。

将具有上下游依赖关系的任务转化为有向无环图(DAG)中的一个个节点,可视化地展示任务上下游节点、完成进度即是 DAG 调度。

大数据 DAG 调度开源产品有如下:

以云原生为特点的工作流引擎:

秒级定时调度

秒级定时调度需求主要来自 flink 集群和任务监控。

当创建 flink 集群或提交任务后需要通过秒级定时任务轮询 flink 集群,更新集群和任务状态

Pipeline

对于部分场景,需要任务 pipeline 支持。

flink 以 Native Kubernetes 方式运行时,有 2 种方式:Session 和 Application。今年 flink 官方也推出 flink-kubernetes-operator,通过 flink-kubernetes-operator 原生地创建 Session 集群和提交 Application 任务。

kubernetes 上以 application 模式运行 flink 任务,需要制作对应的任务镜像。发布 application 模式的任务流程如下:

  • 下载、拉取制作镜像的文件
  • 制作镜像
  • 发布镜像到镜像注册中心
  • 提交 application 模式 flink 任务到 kubernetes 中
  • 容错处理

技术方案

scaleph 内嵌调度系统会显得过于笨重,需要提供一层调度代理接口,与第三方调度系统进行对接:

  • scaleph 服务端通过调度代理进行任务的创建,运行,暂停,删除等操作
  • scaleph 服务端实现任务的执行逻辑,并通过调度代理进行封装,以便方便第三方调度系统运行。