【问题标题】:Apache Flink: guideliness for setting parallelism?Apache Flink:设置并行性的指南?
【发布时间】:2018-06-06 11:19:53
【问题描述】:

我正在尝试获取一些简单的规则或准则来设置哪些值 操作员或工作 并行性。在我看来,它应该是一个数字

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

如果您请求的并行度比任务槽多,会发生什么?在 上面的例子, 如果我将操作的并行度设置为 12 会发生什么?我假设它 会使用尽可能多的 可用?

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

谢谢!

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

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

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

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

    【讨论】:

    • 听起来是个好建议。但是提出的数字示例呢?他们正确吗?
    • 您指的是哪些数字示例?
    • 他在问 >> “例如,假设我有 2 台任务管理器机器,每台机器有 4 个任务槽。假设集群上没有运行其他作业,我是否会为过滤器和映射到 8?...如果我将其设置为 12" 等会发生什么
    • 理想情况下,您将并行度设置为集群中的插槽数。在批处理作业中,您还可以将并行数设置为更高的值,但这样做不会获得太多收益。
    • 嘿@Till Rohrmann,如果需要,Yarn 会动态扩展?
    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多