我一共有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的内容时,我如何限制结构化流媒体中微批量的大小?
1条答案
按热度按时间hjzp0vay1#
结构化的流处理在每个kafka主题分区中使用一个分区。由于单个分区是由单个核心处理的,因此它最多只能使用分配给应用程序的执行器中的这个数量。
一个批处理中处理的消息的数量主要取决于所使用的触发器(如果使用了批处理,则结果是批处理间隔),但是请看
maxOffsetsPerTrigger
:每个触发间隔处理的最大偏移量的速率限制。指定的偏移总数将按比例拆分为不同卷的主题分区。