【问题标题】:what the balance of flink's taskmanager and slot count on yarnflink 的 taskmanager 和 slot 在 yarn 上的平衡是什么
【发布时间】:2021-09-22 08:59:28
【问题描述】:

我在 pre-job 模式下使用 flink on yarn,yarn cluster 有 500 vcore 和 2000G ram,flink app 有很大的 state。 我想知道我应该如何设置插槽数。设置大的槽数和较少的TaskManager 数,或者较少的槽数和大的TaskManager 数?

示例:

  1. 为每个 TaskManager 设置 2 个 slot,然后 yarn 将运行 250 个 TaskManager。
  2. 为每个 TaskManager 设置 50 个 slot,然后 yarn 将运行 10 个 TaskManager。

哪一个会有连击表现?

【问题讨论】:

    标签: apache-flink hadoop-yarn flink-streaming


    【解决方案1】:

    这取决于。部分取决于您使用的状态后端,以及“更好的性能”对您的应用程序意味着什么。无论您是运行批处理还是流式工作负载也会有所不同,作业的拓扑结构也可能是一个因素。

    如果您使用 RocksDB 作为状态后端,那么拥有更少、更大的任务管理器可能是您的最佳选择。在堆状态下,较大的任务管理器更有可能通过显着的 GC 暂停来中断处理,这主张拥有更多、更小的 TM。但这主要影响流式作业的最坏情况延迟,因此如果您正在运行批处理作业,或者只关心流式吞吐量,那么这可能不值得考虑。

    可以优化同一 TM 中插槽之间的通信,但如果您的工作不进行任何插槽间通信,则这不是一个因素。

    【讨论】:

      猜你喜欢
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多