【问题标题】:Send/Process a image(.png or .jpg) from kafkaProducer to kafkaConsumer? [duplicate]将图像(.png 或 .jpg)从 kafkaProducer 发送/处理到 kafkaConsumer? [复制]
【发布时间】:2019-08-29 11:50:40
【问题描述】:

我对 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

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    最小示例(scala):

    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
    

    【讨论】:

    • 我应该在生产者控制台中实现这个
    • 很抱歉给您带来了困惑。你可以看到两个独立的例子。在您的应用程序中使用 scala sn-p 或将其放入对象的 main 函数中以独立运行它。控制台消费者可以按原样运行。
    • 对不起@Anthony 你到底在找什么?命令行工具?还是一个scala代码sn-p?两者都在场。选择你想要的任何东西
    • org.apache.kafka.common.serialization下没有LongSerializer?
    • 是的,只有 stringSerializer 和 stringdeserializer ,序列化器和反序列化器,bytearrayserializer 和 bytearraydeserializer。
    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2014-10-17
    • 2022-01-05
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多