Apache Flink:设置并行性的指导性?

时间:2018-06-06 11:19:53

标签: apache-flink flink-streaming

我正在尝试为要设置的值获取一些简单的规则或指南 经营者或工作 并行性。在我看来,它应该是一个数字< =数字 可用的任务 插槽?

例如,假设我有2台任务管理器机器,每台机器有4个任务槽。 假设群集上没有其他作业,我会设置并行性 用于操作 喜欢过滤并映射到8?如果没有,那么合理的数字是多少?

如果您请求更多并行性而不是任务位,会发生什么?在 上面的例子, 如果我在操作上将并行度设置为12会发生什么?我在假设它 只会使用尽可能多的 可用吗?

此外,您似乎不想将并行性硬编码 你的源代码,因为 您希望在提交时大致了解可用的任务位置 工作? 您是否应该为所有运算符设置大致相同或不同的并行度 价值观,以及指导的内容 那个决定?

谢谢!

1 个答案:

答案 0 :(得分:2)

一般来说,不要对并行性进行硬编码是一个好主意,因为通常由操作负责决定分配给您的工作的资源数量。此外,资源需求通常取决于您的SLA和实际工作负载,因此,程序无关,应单独处理。

在Yarn或Mesos上运行Flink 1.5.0时,您只需要决定作业的parallelim,系统将确保它启动足够的TaskManagers并有足够的插槽来执行您的工作。这完全是动态发生的,您甚至可以在运行时更改作业的并行性。

如果您使用的是独立模式,或者您的Yarn / Mesos群集没有足够的可用资源/插槽,则如果系统无法获取所需的插槽,则作业将失败,并显示NoResourceAvailableException

相关问题