flink集群任务 - flowerfine/scaleph GitHub Wiki
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 进行类隔离的框架,可以参考、使用。