当其中一个Kafka节点关闭时,是否可以使用消息?

时间:2016-12-19 14:12:22

标签: scala apache-kafka spark-streaming

尝试使用Kafka运行Spark Streaming作业时出现以下错误:

org.apache.spark.SparkException: org.apache.spark.SparkException: Couldn't find leaders for Set([<topicName>,1])

我读到可能会发生此错误,因为其中一个Kafka节点已关闭。所以,我检查了它,情况确实如此:在3个节点中,其中1个节点已关闭。我的问题是,是否有可能以这样的方式配置(从Scala代码中)Kafka消费者,即使某些节点关闭,它仍然可以工作?它与复制因子有关(据我所知,应该大于1),但不确定如何从代码中设置它:

val eEventsMap = eventsTopic.split(",").toSet
val kafkaParams = Map[String, String]("metadata.broker.list" -> "172.135.23.25:9092,172.135.23.35:9092,172.135.23.45:9092",
                                      "auto.offset.reset" -> "smallest")
val events = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, eventsMap).map(_._2)

0 个答案:

没有答案