【发布时间】:2017-06-02 21:42:33
【问题描述】:
我最近一直在使用 Spark Streaming 来处理 kafka 中的数据。
应用程序启动并完成几批后,有一个持续的延迟。
大多数情况下,数据处理在 1-5 秒内完成。
但是,经过几个batch之后,连续耗时41~45秒,大部分延迟发生在从stage0取数据的区域。
无意中发现 Kafka request.timemout.ms 设置默认为 40 秒,并将此设置更改为 10 秒。
然后我重新启动应用程序并观察到批处理在 11 到 15 秒内完成。
实际处理时间为 1-5 秒。我无法理解这种延迟。
怎么了?
我的环境如下。
Spark 流式传输 2.1.0(createDirectStream)
卡夫卡:0.10.1
批处理间隔:20s
Request.timeout.ms : 10s
/////
下图是 request.timeout.ms 设置为 8 秒时的图表。
【问题讨论】:
-
您必须提供更多详细信息。向我们展示您的 Spark 图表是什么样子,或许还可以添加一张 Streaming API 是什么样子的图片,特别是深入了解需要很长时间的批次。
-
嗨,kim,你解决了这个问题吗?我也面临同样的问题。
标签: scala apache-spark streaming apache-kafka spark-streaming