Apache flink如何在节点之间分配数据?

时间:2018-03-06 05:27:17

标签: apache-flink

我已经设置了一个2节点的独立Apache Flink集群。对于少量数据(70 MB),2的并行性需要更多时间(2分30秒)来处理,因为1的并行性仅需要18秒。对于少量数据,开销是多少以及为什么在大量数据的情况下无关紧要?我希望在大数据和小数据的情况下了解有关数据分布的更多细节并表征性能。谢谢

1 个答案:

答案 0 :(得分:0)

我不认为你所要求的事情有一个确切的答案。我会尽力向自己解释,但我不是该领域的专家。

1)对于少量数据,开销有多大,为什么在大量数据的情况下无关紧要?

开销在大量数据中无关紧要,因为单个节点无法处理所有数据,如果节点无法处理所有数据,则有两件事情可能发生:

  1. 您丢弃数据并将其丢失
  2. 该节点会在您的系统中生成backpresure,如果不进行管理,这可能是一个很大的问题。
  3. 因此,如果您有多个节点处理所有传入数据,您可以在数据到达时立即处理,数据不等待节点处理它。这就是为什么开销微不足道。

    2)我想知道有关大小数据的数据分布的更多细节,并表征性能。

    数据的分发很难解释,因为它取决于你在做什么以及系统的配置。阅读以下文档:

    1. Flink runtime
    2. Flink Rescalable state
    3. Flink parallelism
    4. 您配置系统的方式和设计工作的方法将影响数据的分区和分布方式。