如何使Spark Kafka流中的消费者组和将消费者分配给消费者组

时间:2020-10-15 07:34:27

标签: java apache-spark apache-kafka

我有一个主题,名称为topic_1,并创建了4个分区。我需要在Kafka Spark Stream中并行阅读。所以我需要建立一个消费者群体和一个消费者。

您能帮我怎么做吗?

就目前的Kafka火花流而言,一次是来自Kafka的一个请求。

1 个答案:

答案 0 :(得分:1)

假设您使用的是Spark中的KafkaUtils,它将自动利用Spark执行器的数量*每个执行器的核心数。

因此,如果您有2个Spark Executor,每个Executor具有2个核心,Spark将自动并行使用4个主题分区。

在Kafka Spark Streaming集成中,输入任务的数量由主题中的分区数量确定。如果您的主题有4个分区,Spark Streaming将为每个批次生成4个任务。

如果您有1个具有1个Core的Executor,则Core将依次执行4个任务(无并行运算)。而如果您有2个执行器,每个执行器具有1个核心,那么每个核心将依次执行2个任务(因此并行度为2)。

对于4个分区,您应该配置以下任何一项,以实现最大的使用者并行度:

  • 1个具有4个核心的执行器
  • 2个执行器,每个具有2个核心
  • 4个执行器,每个核心1个