为什么Apache Flink应用程序的并行执行比顺序执行慢?

时间:2018-02-26 10:40:29

标签: apache-flink

我有一个Apache Flink设置,其中包含一个TaskManager和两个处理插槽。当我执行并行度设置为1的应用程序时,该作业大约需要33秒才能执行。当我将并行度增加到2时,该作业需要45秒才能完成。

我在Windows机器上使用Flink配置10个Compute Cores(4C + 6G)。我希望通过2个插槽获得更好的结果。我该怎么办?

1 个答案:

答案 0 :(得分:2)

Apache Flink等分布式系统旨在在数百台计算机上的数据中心中运行。它们不是为了在一台计算机上并行计算而设计的。此外,Flink针对大规模问题。在本地计算机上以秒为单位运行的作业不是Flink的主要用例。

并行化应用程序总是会导致开销。必须在进程和线程之间分发和共享数据。 Flink通过序列化和反序列化在TaskManager插槽中分发数据。此外,启动和协调分布式任务也不是免费的。

在单个计算机上使用分布式系统扩展小规模问题时,观察更长的执行时间并不奇怪。您可以将应用程序移植到利用共享内存的线程并行应用程序。