最近我们多次尝试使用水槽。主要是将数据从前端服务器流式传输到后端服务器以进行处理。这是通过编写本地“日志”文件并使用它们来实现的。 问题是在重新启动flume节点时,目录中的所有文件都重新发送。有没有办法有效地管理这个?水槽可以提供一些事件,它已完成处理文件?它是否内置了检查点?
如果没有,做这样的事情的方法是什么?
答案 0 :(得分:0)
每当你重新启动flume节点时,tailsource将从它尾随的文件的开头开始。 Flume还没有开箱即用解决这个问题。你必须自己实施一种管理状态。
只是给你一个快速的想法,你可以运行另一个线程基本上听tailsource一直在跟踪文件的字节并在某处持有bytes_read。如果水槽代理程序崩溃或重新启动,您只需从持久化的位置读取bytes_read(例如,tmp文件夹中的文件)。但是你需要以某种方式包装tailsource构造函数。当你在等待水槽本身的修复时,它以一种讨厌的方式解决了这个问题:(