Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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
Scala 卡夫卡和Spark流媒体简单生产者消费者_Scala_Apache Kafka_Spark Streaming_Producer Consumer - Fatal编程技术网

Scala 卡夫卡和Spark流媒体简单生产者消费者

Scala 卡夫卡和Spark流媒体简单生产者消费者,scala,apache-kafka,spark-streaming,producer-consumer,Scala,Apache Kafka,Spark Streaming,Producer Consumer,我不知道为什么生产者发送的数据没有送达消费者。 我正在cloudera虚拟机上工作。 我试图写一个简单的生产者消费者,生产者使用卡夫卡,消费者使用火花流 scala中的生产者代码: import java.util.Properties import org.apache.kafka.clients.producer._ object kafkaProducer { def main(args: Array[String]) { val props = new Propertie

我不知道为什么生产者发送的数据没有送达消费者。 我正在cloudera虚拟机上工作。 我试图写一个简单的生产者消费者,生产者使用卡夫卡,消费者使用火花流

scala中的生产者代码:

import java.util.Properties
import org.apache.kafka.clients.producer._

object kafkaProducer {

  def main(args: Array[String]) {
    val props = new Properties()
    props.put("bootstrap.servers", "localhost:9092")
    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer")
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer")

    val producer = new KafkaProducer[String, String](props)

    val TOPIC = "test"

    for (i <- 1 to 50) {
      Thread.sleep(1000) //every 1 second
      val record = new ProducerRecord(TOPIC, generator.getID().toString(),generator.getRandomValue().toString())
      producer.send(record)
    }

    producer.close()
  }
}

通过更改消费代码行中的以下内容可以解决此问题:

        val stream = KafkaUtils.createStream(ssc, "localhost:9092", "spark-streaming-consumer-group", Map("test" -> 1))
第二个参数应该是zookeeper端口,2181而不是9092,zookeeper将自动连接到Kafka端口9092


注意:在运行生产者和消费者之前,应先从终端启动Kafka。

通过更改消费者代码行解决问题:

        val stream = KafkaUtils.createStream(ssc, "localhost:9092", "spark-streaming-consumer-group", Map("test" -> 1))
第二个参数应该是zookeeper端口,2181而不是9092,zookeeper将自动连接到Kafka端口9092


注意:在运行生产者和消费者之前,应先从终端启动Kafka。

我猜您是按顺序启动生产者和消费者???是的,我先启动消费者,然后在消费者运行时启动生产者。您是否已通过控制台消费者测试了生产者代码,并通过控制台生产者测试了消费者代码?Kafka-Spark集成可能会变得棘手…我已经通过一个控制台使用者测试了生产者代码,但还没有测试消费者代码。我想你应该按顺序启动生产者和消费者???是的,在使用者运行时,我先启动使用者,然后启动生产者。您是否通过控制台使用者测试了生产者代码,并通过控制台生产者测试了消费者代码?Kafka-Spark集成可能会变得棘手…我已经通过一个控制台使用者测试了生产者代码,但还没有测试使用者代码。