Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 基于直接流的SparkStreaming,Kafka仅显示一个消费者ID_Apache Spark_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Apache spark 基于直接流的SparkStreaming,Kafka仅显示一个消费者ID

Apache spark 基于直接流的SparkStreaming,Kafka仅显示一个消费者ID,apache-spark,apache-kafka,kafka-consumer-api,Apache Spark,Apache Kafka,Kafka Consumer Api,我正在使用kafka-2.3.0、spark 2.2.1和scala 2.11。我使用的是直接流方法,在这种方法中,驱动程序查询最新的偏移量,并确定批量流的偏移量范围,然后执行器使用这些偏移量范围从Kafka读取数据。 正如您在下面看到的,我有一个名为test kafka的主题,它有4个分区,它们分布在两个领导者之间 现在,我启动spark streaming,它使用以下配置从同一主题读取数据: val kafkaParams = Map[String, Obj

我正在使用kafka-2.3.0、spark 2.2.1和scala 2.11。我使用的是直接流方法,在这种方法中,驱动程序查询最新的偏移量,并确定批量流的偏移量范围,然后执行器使用这些偏移量范围从Kafka读取数据。 正如您在下面看到的,我有一个名为test kafka的主题,它有4个分区,它们分布在两个领导者之间

现在,我启动spark streaming,它使用以下配置从同一主题读取数据:

                val kafkaParams = Map[String, Object](
                "bootstrap.servers" -> "localnosql1:9092,localnosql2:9092",
                "key.deserializer" -> classOf[StringDeserializer],
                "value.deserializer" -> classOf[StringDeserializer],
                "group.id" -> "streaming-group",
                "auto.offset.reset" -> "earliest",  
                "auto.commit.interval.ms" -> "1000",
                "enable.auto.commit" -> (true: java.lang.Boolean)
            )
            val topics = Array("test-kafka")
            val stream = KafkaUtils.createDirectStream[String, String](
                        ssc,
                        PreferConsistent,
                        Subscribe[String, String](topics, kafkaParams)
            )
现在,当我在CLI上检查有关消费者组的信息时。它显示仅分配了一个消费者id。这是否意味着只有一个消费者在使用卡夫卡的数据?如果是,原因为何?我有两个执行器运行在卡夫卡运行的同一台机器上,如下所述


在这种情况下,您可能正在提交来自驱动程序的偏移量(该偏移量有效)。驱动程序从卡夫卡获取偏移量,并切换到执行器,卡夫卡从卡夫卡提取实际数据。处理批处理后,驱动程序将偏移提交给Kafka

我也有同样的问题这里是链接: