我正在使用火花流(直接流方法)从Kafka读取大约100万条记录/批次,并对数据进行一些分析,处理大约需要13-15分钟。
因此,为了稳定系统,我想更改kafka参数中的kafka属性'max.poll.interval.ms'以允许在15分钟后进行轮询。
'TRA-002'
但是当我检查日志时,它说:
WARN ConsumerConfig:已提供配置max.poll.interval.ms = 900000,但不是已知配置。
这与kafka版本有关,是否无法使用此属性。我正在使用Kafka版本(0.10.1.0)。
任何帮助将不胜感激。
谢谢!
答案 0 :(得分:0)
它不是消费者属性的一部分。您可以在Spark conf中尝试spark.streaming.kafka.consumer.poll.ms。
答案 1 :(得分:0)
Tl;
博士只需在pom.xml中添加工件即可解决问题。
<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.10.1.0</version>
</dependency>
完整答案
参数max.poll.interval.ms
是从Kafka 0.10.1(KIP-62)开始添加的。
从Kafka 0.10.1开始,心跳已通过单独的线程发送,这大大减少了不必要的重新平衡。强烈建议从0.10.1开始使用kafka客户端。
根据DZone上发布的Sathvik Vutukuri's Spark 3.0.0 Example,显式添加特定版本的kafka客户端工件(在pom.xml
/ build.sbt
中的依赖项列表中)将“强制”实例实例化正确版本的kafka客户端。
更多
随着时间的流逝,卡夫卡不断发展。始终建议使用已部署/源/目标kafka群集的匹配/兼容客户端版本。
在以下位置检查工件的完整列表:
https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients