首页 > 解决方案 > Flink 部署生产标准

问题描述

我们有一个由不同团队管理的 Flink 集群。集群在多个作业之间共享。因此,在任何特定时间,任何任务管理器都有运行不同作业操作的插槽。我几乎没有问题-

  1. 建议与其他工作共享生产集群吗?
  2. 如果一个作业失败,它会杀死另一个作业的任务管理器运行线程吗?
  3. 如果我们没有其他办法并且不得不使用共享集群,那么处理异常情况的最佳方法是什么,以便在任务管理器因 FATAL 错误而自杀时不会杀死另一个作业?

标签: apache-flinkflink-streaming

解决方案


  1. 我建议使用 Flink 的作业模式,每个作业都有一个专用的 Flink 集群。这会给你工作隔离,一个恶意的 Flink 工作将无法阻止你的其他工作。

  2. 如果一个作业由于任务失败而失败,那么这不会影响在同一TaskManager.

  3. 如果一个TaskManager失败,那么所有当前执行的任务都将失败。因此,所有至少有一个任务在此执行的作业都TaskManager将失败,然后需要恢复。目前,没有办法在共享集群上强制执行每个作业的隔离。然而,有一个JIRA 问题试图通过引入作业级标签来解决这个问题。这些标签可用于控制属于不同作业的任务的调度。


推荐阅读