我有一个 Spark 集群,总共有 17 个执行器。我已将 Spark 2.1 与 Kafka 集成,并从以下主题读取数据:
val df = spark
.readStream
.format("kafka")
.options("kafka.bootstrap.servers","localhost:9092")
.options("subscribe","test")
.load
现在我想知道,当我以集群模式提交 Spark 应用程序时,将分配多少个执行器(总共 17 个)来监听 Kafka 主题并在结构化流中创建微批处理。
此外,从 Kafka 读取数据时如何限制结构化流中微批处理的大小?
最佳答案
结构化流为每个 Kafka 主题分区使用一个分区。由于单个分区由单个核心处理,因此它将最多使用分配给应用程序的执行器数量。
批量处理的消息数量主要取决于所使用的触发器(因此,如果使用批处理,则批处理间隔也相同),但是请查看 maxOffsetsPerTrigger
:
Rate limit on maximum number of offsets processed per trigger interval. The specified total number of offsets will be proportionally split across topicPartitions of different volume.
关于apache-spark - Spark 2.1中的Spark-kafka集成分配了多少个executor来监听kafka主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179858/