有时会违反Spark流式传输maxRate

时间:2016-10-13 16:03:27

标签: configuration spark-streaming azure-eventhub

我有一个简单的Spark Streaming进程(1.6.1),它从Azure Event Hub接收数据。我正在尝试使用back pressuremaxRate设置。这是我的配置:

spark.streaming.backpressure.enabled = true
spark.streaming.backpressure.pid.minRate = 900
spark.streaming.receiver.maxRate = 1000

我使用两个receivers,因此每个微量补丁我会期望2000条消息(总计)。大部分时间这都可以正常工作(总事件数低于或等于maxRate值)。但有时候我的峰值会违反maxRate值。

我的测试用例如下:

- send 10k events to azure event hub
- mock job/cluster downtime (no streaming job is running) 60sec delay
- start streaming job
- process events and assert events number smaller or equal to 2000

在那个测试中我可以观察到事件的总次数有时高于2000,例如:2075,2530,2040。它没有明显更高且处理不耗时但是我仍然期望总数每个微量补丁的事件遵守maxRate值。此外,某些时候事件总数小于backpressure.pid.minRate,例如:811,631。

我做错了吗?

0 个答案:

没有答案