具有火花流2.2.1和kafka 0.10.0.1的高读取延迟

Kir*_*var 5 apache-spark spark-streaming

Spark 2.2.1 + Kafka 0.10 + Spark流媒体.

批处理持续时间为1秒,每个分区的最大速率为500,轮询间隔为120秒,最大轮询记录为500,Kafka中没有分区为500,启用缓存使用者.

在尝试从Kafka读取数据时,我们间歇性地观察到非常高的读取延迟.高延迟导致Kafka消费者会话到期,因此Kafka经纪人将消费者从该组中移除.消费者继续重试,最终失败了

[org.apache.kafka.clients.NetworkClient] - Disconnecting from node 12 due to request timeout
[org.apache.kafka.clients.NetworkClient] - Cancelled request ClientRequest
[org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient] - Cancelled FETCH request ClientRequest.**
Run Code Online (Sandbox Code Playgroud)

由于这个原因,很多批次都处于排队状态.

只要多个客户端并行尝试从同一Kafka群集读取数据,就会发生高读取延迟.Kafka集群拥有大量代理,可以支持高网络带宽.

当使用spark 1.5和Kafka 0.8消费者客户端对同一个Kafka集群运行时,我们没有看到任何读取延迟.