我的进程时不时地创建大量文件,我想将文件从本地目录传输到 HDFS 中的某个位置,除了使用 NiFi 之外,是否可以在 java 中开发该流程。如果是的话,请通过提供一些 Java 引用代码来指导我。
请帮帮我!
最佳答案
你可以做几件事:-
1) 使用 Apache Flume :- https://www.dezyre.com/hadoop-tutorial/flume-tutorial 。此页面显示:-“Apache Flume 是一个分布式系统,用于将文件聚合到单个位置。”此解决方案应该比使用 kafka 更好,因为它是专门为文件设计的。
2) 编写 Java 代码以 ssh 连接到您的计算机,并扫描在特定时间戳之后修改的文件。如果您发现此类文件,请打开输入流并将其保存在您的 java 代码正在运行的机器上。
3) 或者,您的 java 代码可以在正在创建文件的计算机上运行,您可以扫描在特定时间戳之后创建的文件并将它们移动到任何新计算机
4)如果你只想使用kafka。您可以编写 java 代码来读取文件、查找最新文件/行并将其发布到 kafka 主题。 Flume 可以开箱即用地完成这一切。
关于java - 如何使用Kafka传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136130/