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
Java 如何使用Kafka传输文件_Java_Apache Kafka_Kafka Consumer Api_Kafka Producer Api - Fatal编程技术网

Java 如何使用Kafka传输文件

Java 如何使用Kafka传输文件,java,apache-kafka,kafka-consumer-api,kafka-producer-api,Java,Apache Kafka,Kafka Consumer Api,Kafka Producer Api,我的过程会不时创建大量文件,我想将文件从本地目录传输到HDFS中的某个位置,而不是使用NiFi,是否可以用java开发该流。如果是,请给我一些Java参考代码来指导我 请帮帮我 我不知道卡夫卡中的消息大小是否有限制,但您可以在生产者/消费者属性中使用。将文件转换为字节,然后在使用者上重建 在快速搜索时,我找到了这个 message.max.bytes(默认值:1000000)–消息的最大大小 经纪人会接受的。这必须小于消费者 fetch.message.max.bytes,否则代理将具有无法访问

我的过程会不时创建大量文件,我想将文件从本地目录传输到HDFS中的某个位置,而不是使用NiFi,是否可以用java开发该流。如果是,请给我一些Java参考代码来指导我


请帮帮我

我不知道卡夫卡中的消息大小是否有限制,但您可以在生产者/消费者属性中使用。将文件转换为字节,然后在使用者上重建

在快速搜索时,我找到了这个

message.max.bytes(默认值:1000000)–消息的最大大小 经纪人会接受的。这必须小于消费者 fetch.message.max.bytes,否则代理将具有无法访问的消息 被消费,导致消费者上吊


你可以做几件事:-

1) 使用Apache flume:-。此页面显示:-“Apache Flume是一个分布式系统,用于将文件聚合到单个位置。”此解决方案应优于使用kafka,因为它是专为文件设计的

2) 将Java代码写入ssh并扫描特定时间戳后修改的文件。如果发现这样的文件,请打开输入流并将其保存在运行java代码的机器上

3) 或者,您的java代码可以在创建文件的机器上运行,您可以扫描在特定时间戳之后创建的文件,并将其移动到任何新机器上

4) 如果你只想使用卡夫卡。您可以编写java代码来读取文件、查找最新的文件/行并将其发布到kafka主题。水槽可以做所有这些开箱即用