0

我已经在我的 IDE(Intellij)和独立集群中运行了我的 Flink 程序(在 Scala 中)。在我的程序中,我打印出运行时间。在 IDE 中运行时我得到了 20 秒,在独立集群中运行时我得到了 74 秒。我很困惑为什么在具有 10 个并行度的集群中运行这么多时间。我基本上是在尝试将 Flink 性能与 Spark 进行比较。有人可以帮助我了解它是如何发生的吗?谢谢你。

补充

我的程序示例可以在这里找到。此特定代码在控制台中打印的时间如下:

  • Flink(IDE,Windows):2550ms
  • Flink(独立集群,WSL2 Ubuntu):9076ms

我已更改的 Flink 独立集群的配置:

  • jobmanager.memory.process.size:2600m
  • taskmanager.memory.process.size:5728m
  • taskmanager.numberOfTaskSlots:20
  • 并行度。默认值:4
  • 其余配置使用默认值。

运行 flink jar : flink run --class flinkutils.generated.Test2Agg2Spark ./target/scala-2.12/executorflink_2.12-0.1.jar

4

1 回答 1

1

影响性能的一个因素是,当在 IDE 中运行时,一切都在单个 JVM 中运行,并且数据在内存中传送。而对于集群,数据正在通过 TCP 堆栈。

但这是一个复杂的场景,许多其他因素也可能对性能产生负面影响。

FWIW,Flink SQL 在 TPC-H 基准测试中获得了良好的性能(如果配置正确)。

于 2021-07-12T18:21:27.547 回答