Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 火花流+;卡夫卡:火花例外:无法';无法找到集合的引线偏移_Apache Spark_Apache Kafka_Spark Streaming - Fatal编程技术网

Apache spark 火花流+;卡夫卡:火花例外:无法';无法找到集合的引线偏移

Apache spark 火花流+;卡夫卡:火花例外:无法';无法找到集合的引线偏移,apache-spark,apache-kafka,spark-streaming,Apache Spark,Apache Kafka,Spark Streaming,我正在尝试设置Spark Streaming以从Kafka队列获取消息。我得到以下错误: py4j.protocol.Py4JJavaError: An error occurred while calling o30.createDirectStream. : org.apache.spark.SparkException: java.nio.channels.ClosedChannelException org.apache.spark.SparkException: Couldn't fi

我正在尝试设置Spark Streaming以从Kafka队列获取消息。我得到以下错误:

py4j.protocol.Py4JJavaError: An error occurred while calling o30.createDirectStream.
: org.apache.spark.SparkException: java.nio.channels.ClosedChannelException
org.apache.spark.SparkException: Couldn't find leader offsets for Set([test-topic,0])
        at org.apache.spark.streaming.kafka.KafkaCluster$$anonfun$checkErrors$1.apply(KafkaCluster.scala:366)
        at org.apache.spark.streaming.kafka.KafkaCluster$$anonfun$checkErrors$1.apply(KafkaCluster.scala:366)
        at scala.util.Either.fold(Either.scala:97)
以下是我正在执行的代码(pyspark):

有几篇类似的帖子也有同样的错误。在所有情况下,原因都是空洞的卡夫卡主题。我的“测试主题”中有消息。我可以带他们出去

kafka-console-consumer --zookeeper host.domain:2181 --topic test-topic --from-beginning --max-messages 100
有人知道可能是什么问题吗

我正在使用:

  • Spark 1.5.2(apache)
  • 卡夫卡0.8.2.0+卡夫卡1.3.0(CDH 5.4.7)

如果在/etc/hosts中定义短主机名,并在kafka服务器的配置中使用它们,则应将这些名称更改为ip。或者在本地PC或客户端的/etc/hosts中注册相同的短主机名


发生错误,因为Spark streaming lib无法解析PC或客户端中的短主机名。

您需要检查两件事:

  • 检查此主题和分区是否存在,在本例中,主题为
    测试主题,分区为0

  • 根据您的代码,您正在尝试使用来自偏移量0的消息,可能来自偏移量0的消息不可用,请检查最早的偏移量是多少,然后尝试从那里使用

  • 下面是检查最早偏移的命令:

    sh kafka/bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list "your broker list" --topic "topic name" --time -1 
    
    1) 您必须确保已经创建了主题
    测试主题

    运行以下命令检查主题列表

    kafka-topics.sh——列表——zookeeper[主机或zookeeper的ip]:[端口]

    2) 检查主题后,您必须在
    套接字服务器设置
    部分中配置Kafka配置


    listeners=PLAINTEXT://[卡夫卡的主机或ip]:[端口]

    如果主题不存在,则强制创建主题的另一个选项。可以通过如下方式将kafkaParams映射中的属性“auto.create.topics.enable”设置为“true”来完成此操作

    val kafkaParams = Map[String, String](
      "bootstrap.servers" -> kafkaHost,
      "group.id" -> kafkaGroup,
      "auto.create.topics.enable" -> "true")
    

    使用Scala 2.11和Kafka 0.10版本。

    无法找到指定主题的leader的此类错误的原因之一是Kafka服务器配置问题

    打开Kafka服务器配置:

    vim ./kafka/kafka-<your-version>/config/server.properties
    

    我正在使用MapR沙盒提供的卡夫卡设置,并试图通过spark代码访问卡夫卡。我在访问卡夫卡时遇到了相同的错误,因为我的配置缺少IP。

    我认为这是由于缺少leader,请检查我遇到了相同的问题,告诉我是否找到了解决方案?我使用spark 1.6.1和kafka 0.8.2.1运行,我将偏移量存储在zookeeper中。我清除/停止了我正在存储的偏移量,这个错误不再出现。
    vim ./kafka/kafka-<your-version>/config/server.properties
    
    listeners=PLAINTEXT://{host-ip}:{host-port}