在阅读多分区的Kafka主题时,Spark结构化的流消费者如何启动和调用?

时间:2019-06-10 10:47:08

标签: apache-spark apache-kafka spark-streaming kafka-consumer-api

如果kakfa主题具有多个分区,在Java中,那么许多消费者实例/线程将在消费者端实例化。

如何在火花式的消费方中处理它?我没有找到太多有关相同的信息。相同的任何示例,即在某个主题的火花流消费者处调用多个消费者。

任何有关设计的建议/示例都将非常感谢。

关于, 什米

2 个答案:

答案 0 :(得分:2)

如果 Kafka 具有多个分区,则意味着消费者可以通过并行执行特定任务来从中受益。特别是内部的 spark-streaming 可以通过增加num-executors参数来加快工作速度。这与Kafka拥有的分区数量有关,例如,如果您拥有与Spark中的num-executors相同的Kafka分区数量,则例如,理论上所有执行者都可以一次读取所有分区。增加系统吞吐量。

答案 1 :(得分:2)

只要Spark有足够的资源,Spark流总是会从Kafka的所有可用分区中并行读取数据。这是随Spark一起提供的,我们不需要为此编写任何代码。

  

例如,如果您的Kafka主题具有4个分区,则如果启动   您的火花工作,其中有两个具有2个核心的执行程序,然后是火花工作   将启动4个任务以从4个Kafka并行读取数据   分区。

如果需要更多信息,请随时发表评论。

https://spark.apache.org/docs/2.2.0/streaming-kafka-0-10-integration.html

$