apache-spark - 无法在 Kafka 的火花流中使用属性“max.poll.interval.ms”
问题描述
我正在使用火花流(直接流方法)从 Kafka 读取大约 100 万条记录/批次,并对需要大约 13-15 分钟处理它的数据进行一些分析。
所以,为了稳定系统,我想改变 kafka 参数中的 kafka 属性“max.poll.interval.ms”,让轮询在 15 分钟后发生。
var kafkaParams = Map(
..
..
"auto.offset.reset" -> "latest",
"enable.auto.commit" -> (false: java.lang.Boolean),
"max.poll.interval.ms" -> (900000: java.lang.Integer)
)
但是当我检查日志时,它说:
WARN ConsumerConfig:提供了配置 max.poll.interval.ms = 900000 但不是已知配置。
这是否与我无法使用此属性的 kafka 版本相关。我正在使用 Kafka 版本(0.10.1.0)。
任何帮助将不胜感激。
谢谢!
解决方案
铊;博士。
只需在 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 的 Spark 3.0.0 示例,显式添加特定版本的 kafka 客户端工件(在 ie pom.xml
/的依赖项列表中build.sbt
)将“强制”实例实例化正确版本的 kafka 客户端。
更多的
随着时间的推移,kafka 也在不断发展。始终建议使用已部署/源/目标 kafka 集群的匹配/兼容客户端版本。
检查工件的完整列表:
https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
推荐阅读
- perl - 解析 PLC 文件中的字符串
- python - 如何修复 pymongo.errors.OperationFailure:
- apache-httpcomponents - Gzip 解压缩不适用于 Apache CachingHttpClient 版本 5.0.3
- javascript - 将平面数据转换为 3 级层次结构/树
- oracle - 如何根据主键对 ORACLE 表中的数据进行分类?
- html - Snipcart data-item-url 在本地主机上不起作用
- unity3d - 不受定向光影响的丑陋水着色器
- node.js - Mongoose 我们找不到合适的 typescript 泛型来支持嵌套查询
- redis - Laravel 8 Sail Redis 不假设默认缓存驱动程序
- flutter - 挂载小部件后如何显示值?