Spark流输入速率下降



运行Spark Streaming作业时,我不止一次遇到以下行为。处理开始良好:每个批次的处理时间远低于批次间隔。然后突然间,输入速率下降到接近零。请看这些图表。

即使程序可以跟上,也会发生这种情况,并且会大大降低执行速度。我认为,当没有多少未处理的数据时就会出现下降,但是由于下降率非常低,这些最终记录占用了运行作业所需的大部分时间。有什么方法可以避免这种情况并加快速度吗?

我正在使用PySpark与Spark 1.6.2,并使用直接方法用于Kafka流。Backpressure开启,maxRatePerPartition为100

设置backpressure在旧的spark流版本中更有意义,因为你需要接收器从流中消费消息。从Spark 1.3开始,您可以使用少接收方的"直接"方法来确保更强的端到端保证。所以你不需要担心背压,因为spark做了大部分的微调。

最新更新