我对kakfa / spark-streaming非常陌生。我的用例是通过kafka生产者发送图像并从kafka消费者那里捕获它。 我进行了一些研究,发现图像必须转换为二进制或字节格式,但是找不到任何合适的来源来继续使用它。
到目前为止我做了什么:
1.Started zookeeper
2.Started server
3.created a new topic
4.started a producer to send(eg: JSON) - kafka-console-producer.sh --broker-list localhost:9092 --topic send_json < materials.json
5.started a consumer to recieve
如何以类似方式发送.jpg或.png文件? 郎:scala或pyspark
答案 0 :(得分:1)
最小示例(标量):
val props = new Properties()
props.put("bootstrap.servers", "localhost:9092")
props.put("key.serializer", "org.apache.kafka.common.serialization.LongSerializer")
props.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer")
val producer = new KafkaProducer(props)
val data = Files.readAllBytes(Paths.get("/path/to/file"))
val record = new ProducerRecord[Long, Array[Byte]]("yourtopic" , data)
producer.send(record)
producer.close
如果图像变大,请记住这一点How can I send large messages with Kafka (over 15MB)?
如果要使用kafka-console-producer:
kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic < my_file.txt