1

最近我们多次尝试使用flume。主要是将数据从我们的前端服务器流式传输到后端服务器以进行处理。它是通过编写本地“日志”文件并使用水槽尾巴来完成的。问题是重新启动水槽节点后,目录中的所有文件都被重新发送。有没有办法有效地管理这个?水槽可以给出一些它完成处理文件的事件吗?它有内置的检查点吗?

如果不是,那么做这样的事情的方法是什么?

4

1 回答 1

0

每次重新启动水槽节点时,tailsource 将从它拖尾的文件的开头开始。Flume 还没有开箱即用地解决这个问题。您将不得不自己实施一种状态管理。

只是给你一个快速的想法,你可以运行另一个线程,基本上听字节 tailsource 一直在跟踪文件并将 bytes_read 保存在某个地方。如果水槽代理崩溃或重新启动,您只需从保存它的位置读取 bytes_read(例如 tmp 文件夹中的文件)。但是您需要以某种方式包装 tailsource 构造函数。当您等待水槽本身的修复时,它以令人讨厌的方式解决了问题:(

于 2012-05-03T15:01:23.587 回答