Apache kafka 直接从本地机器将1GB文件加载到Kafka producer

Apache kafka 直接从本地机器将1GB文件加载到Kafka producer,apache-kafka,Apache Kafka,我已经尝试过通过命令行从生产者向消费者发布随机消息的基本示例。 现在我想发布本地机器中的所有1GB数据。为此,我正在努力将1GB的数据加载到producer 请帮帮我。您只需将文件重定向到卡夫卡主题即可转储文件。假设1.xml是1GB文件,则可以使用以下命令 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test123 < ./1.xml bin/kafka-console-producer.sh—

我已经尝试过通过命令行从生产者向消费者发布随机消息的基本示例。 现在我想发布本地机器中的所有1GB数据。为此,我正在努力将1GB的数据加载到producer


请帮帮我。

您只需将文件重定向到卡夫卡主题即可转储文件。假设1.xml是1GB文件,则可以使用以下命令

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test123 < ./1.xml 
bin/kafka-console-producer.sh——代理列表localhost:9092——主题test123<./1.xml
  • 但请确保在producer xml中设置以下属性。
    socket.request.max.bytes
    socket.receive.buffer.bytes
    socket.send.buffer.bytes
  • 如果消息大小较大,则需要为test123主题设置
    max.message.bytes
  • 还要更改控制台producer.sh中的Xmx参数,以避免内存不足问题
  • 以下是在kafka中加载数据的一般步骤。 如果您提供错误,我们将能够了解更多


    因此,有两种方法可以帮助: 1) 您可以使用Flume等大数据平台,它们是为此类用例而构建的。 2) 如果您想实现自己的代码,那么可以使用ApacheCommons Lib,当新文件到达文件夹()时,它将帮助您捕获事件,并且在获得新文件后,您可以调用在kafka上发布数据的代码。
    3) 在我们的项目中,我们使用Logstash API执行同样的操作,即从文件夹中提取数据并将数据从文件发布到kafka,然后通过Storm进行处理。

    但问题是什么?从kafka中的某个位置读取许多文件(该文件夹产生1GB)。您的命令是将数据从生产者推送到代理。这我已经知道了。我的make producer从一个位置实时读取大文件。一个位置的所有新文件都应由producer读取并自动发送给代理。我不会遇到任何错误。我只是在开始时遇到麻烦。我的意思是如何让制作人从一个位置实时读取所有文件,所以有两种方法可以帮助你:1)你可以使用Flume这样的大数据平台,它们是为这样的用例而构建的。2) 如果您想实现自己的代码,那么可以使用ApacheCommons Lib,当新文件到达文件夹()时,它将帮助您捕获事件,并且在获得新文件后,您可以调用在kafka上发布数据的代码。3) 在我们的项目中,我们使用LogstashAPI做同样的事情,从文件夹中获取数据并将数据从文件发布到kafka,然后通过Storm进行处理。