Spark 2.2.1 + Kafka 0.10 + Spark streaming。
批处理持续时间为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.**
由于这个原因,很多批次都处于排队状态。
只要多个客户端并行尝试从同一Kafka群集读取数据,就会发生高读取延迟。 Kafka集群拥有大量代理,可以支持高网络带宽。
当使用spark 1.5和Kafka 0.8消费者客户端对同一个Kafka群集运行时,我们没有看到任何读取延迟。