apache-flink - Flink 部署生产标准
问题描述
我们有一个由不同团队管理的 Flink 集群。集群在多个作业之间共享。因此,在任何特定时间,任何任务管理器都有运行不同作业操作的插槽。我几乎没有问题-
- 建议与其他工作共享生产集群吗?
- 如果一个作业失败,它会杀死另一个作业的任务管理器运行线程吗?
- 如果我们没有其他办法并且不得不使用共享集群,那么处理异常情况的最佳方法是什么,以便在任务管理器因 FATAL 错误而自杀时不会杀死另一个作业?
解决方案
我建议使用 Flink 的作业模式,每个作业都有一个专用的 Flink 集群。这会给你工作隔离,一个恶意的 Flink 工作将无法阻止你的其他工作。
如果一个作业由于任务失败而失败,那么这不会影响在同一
TaskManager
.如果一个
TaskManager
失败,那么所有当前执行的任务都将失败。因此,所有至少有一个任务在此执行的作业都TaskManager
将失败,然后需要恢复。目前,没有办法在共享集群上强制执行每个作业的隔离。然而,有一个JIRA 问题试图通过引入作业级标签来解决这个问题。这些标签可用于控制属于不同作业的任务的调度。
推荐阅读
- javascript - 获取 Django 列表 - javascript 中的字典
- javascript - 如何使用 JavaScript 向网页添加文本内容(单击按钮后)?
- mysql - 无法弄清楚将集合插入到 tablr 中的查询
- python - 在 Python 中填充聚合列
- svg - 在svg中的矩形周围添加同心线
- python - 如何以高 FPS 记录我的电脑屏幕?
- elasticsearch - Kibana 中的 % 计算似乎不正确
- python - 如何在 python 中为 sigmoid 函数删除这些循环
- python - Discord.py int 没有属性 send
- loops - 将 2 个动态长度数组添加到第 3 个数组