如何修改 apache beam DirectRunner 以使其更快?

mda*_*win 5 apache-beam

我们正在使用 apache beam 构建一个框架,并且有一些我们根本不需要的用例(例如后期数据)。然而,我们真正需要的是超快的性能。

我正在尝试修改 DirectRunner 使其速度更快。到目前为止,我已经注释掉了 Metrics 和 Enforcements,这使得性能有了小幅提升。我们还删除了 SynchronizedProcessingTimeOutputWatermark 和 SynchronizedProcessingTimeInputWatermark,而不影响我们的用例,这表明可能还有更多(水印?保留?)可以删除。

我意识到这是一个相当模糊的问题,但是我还能删除什么来使其更快?

Ben*_*ers 1

您是否尝试过在您的用例上使用分析器运行它?这些将识别影响您性能的热点。

您应该知道 DirectRunner 是为了演示模型并验证管道代码而编写的。它并不是以性能或可扩展性为目标而编写的。如果您希望高效地运行 Beam 管道,您可能需要考虑其中一种分布式运行程序(例如 Spark、Flink、Dataflow 等),因为它们在处理大数据时都会表现得更好。