Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

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 Spark streaming和kafka缺少所需配置”;划分、分配、战略”;它没有默认值_Apache Spark_Apache Kafka_Spark Streaming_Spark Streaming Kafka - Fatal编程技术网

Apache spark Spark streaming和kafka缺少所需配置”;划分、分配、战略”;它没有默认值

Apache spark Spark streaming和kafka缺少所需配置”;划分、分配、战略”;它没有默认值,apache-spark,apache-kafka,spark-streaming,spark-streaming-kafka,Apache Spark,Apache Kafka,Spark Streaming,Spark Streaming Kafka,我正在尝试使用纱线与Kafka一起运行spark streaming应用程序。我得到以下堆栈跟踪错误- 原因:org.apache.kafka.common.config.ConfigException:缺少没有默认值的必需配置“partition.assignment.strategy”。 位于org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:124) 位于org.apache.kafka.common.config.A

我正在尝试使用纱线与Kafka一起运行spark streaming应用程序。我得到以下堆栈跟踪错误-

原因:org.apache.kafka.common.config.ConfigException:缺少没有默认值的必需配置“partition.assignment.strategy”。 位于org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:124) 位于org.apache.kafka.common.config.AbstractConfig.(AbstractConfig.java:48) 位于org.apache.kafka.clients.consumer.ConsumerConfig.(ConsumerConfig.java:194) 在org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:380) 在org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:363) 在org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:350) 在org.apache.spark.streaming.kafka010.cachedkafconsumer.(cachedkafconsumer.scala:45) 在org.apache.spark.streaming.kafka010.cachedkafconsumer$.get(cachedkafconsumer.scala:194) 在org.apache.spark.streaming.kafka010.kafkarditerator.(KafkaRDD.scala:252) 位于org.apache.spark.streaming.kafka010.KafkaRDD.compute(KafkaRDD.scala:212) 在org.apache.spark.rdd.rdd.computeOrReadCheckpoint(rdd.scala:324) 位于org.apache.spark.rdd.rdd.iterator(rdd.scala:288) 在org.apache.spark.rdd.MapPartitionsRDD.compute上(MapPartitionsRDD.scala:49) 在org.apache.spark.rdd.rdd.computeOrReadCheckpoint(rdd.scala:324) 位于org.apache.spark.rdd.rdd.iterator(rdd.scala:288) 位于org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) 位于org.apache.spark.scheduler.Task.run(Task.scala:109) 位于org.apache.spark.executor.executor$TaskRunner.run(executor.scala:345)

下面是我如何使用spark stream创建KafkaStream的代码片段-

        val ssc = new StreamingContext(sc, Seconds(60))

val kafkaParams = Map[String, Object](
  "bootstrap.servers" -> "*boorstrap_url:port*",
  "security.protocol" -> "SASL_PLAINTEXT",
  "sasl.kerberos.service.name" -> "kafka",
  "key.deserializer" -> classOf[StringDeserializer],
  "value.deserializer" -> classOf[StringDeserializer],
  "group.id" -> "annotation-test",
  //Tried commenting and uncommenting this property      
  //"partition.assignment.strategy"->"org.apache.kafka.clients.consumer.RangeAssignor",
  "auto.offset.reset" -> "earliest",
  "enable.auto.commit" -> (false: java.lang.Boolean))

val topics = Array("*topic-name*")

val kafkaStream = KafkaUtils.createDirectStream[String, String](
  ssc,
  PreferConsistent,
  Subscribe[String, String](topics, kafkaParams))
val valueKafka = kafkaStream.map(record => record.value())
我看过以下的帖子-


  • 根据这一点,我将fat jar中的kafka util jar更新为0.10.2.0版本,默认情况下从spark stream kafka jar打包为瞬态依赖项。当我在单个节点上运行它时,通过将master设置为local,我的工作也可以正常工作。我正在运行spark 2.3.1版本。

    kafka客户端-*.jar
    添加到spark jar文件夹中
    kafka-clients-*.jar
    位于
    kafka-*/lib
    目录中。

    您可以尝试将策略更改为“org.apache.kafka.clients.consumer.RoundRobinAssignor”或尝试设置“consumer.partition.assignment.strategy”而不是“partition.assignment.strategy”我尝试了它,然后得到了错误-java.lang.NoSuchMethodError:org.apache.kafka.clients.consumer.KafkaConsumer.assign(Ljava/util/Collection;)Vtry设置“consumer.partition.assignment.strategy”而不是“partition.assignment.strategy”。我得到了相同的错误-缺少所需的配置“partition.assignment.strategy”“没有默认值。我认为这个问题可能有用: