Skip to content

flink集群任务

wangqi edited this page Jul 12, 2022 · 2 revisions

Flink 集群

flink 的部署和运行模式非常灵活,支持 Standalone、YARN 和 Native Kubernetes 作为资源提供者,任务可以以 Session、Per-Job 和 Application 模式运行

资源管理

对于 YARN 和 Kubernetes 资源提供录入功能,以支持 flink 任务提交

集群和任务配置

对于 Per-Job 和 Application 模式,每次提交任务都会新建一个集群,而 Session 模式下,集群是预先创建的

因此集群配置在 Per-Job 和 Application 模式下,是和任务配置一起的,而 Session 模式下,二者是分离的

集群和任务状态同步

通过调度任务,轮询 flink 集群和任务状态,实时更新、展示 flink 集群和任务信息

集群多版本

目前,scaleph 与 flink 的集成全部是通过 flinkful 实现的,flinkful 单独对每个 flink 的大发行版本进行维护持续追踪。

目前系统部署 flink 任务时受限制于 flinkful 支持的 flink 版本,需要对 flink 多版本进行支持。

解决思路如下:

  • docker 环境隔离。在提交 flink 任务时,通过 docker 进行环境隔离。
  • classloader 隔离。通过 classloader 对 flink 各个版本的适配进行 classloader 隔离。

蚂蚁金服开源的 SOFAArk 是一个通过 classloader 进行类隔离的框架,可以参考、使用。