我的公司正在考虑使用 Flume 进行一些相当大容量的日志处理。我们认为日志处理需要分布式处理,无论是出于容量(可扩展性)还是故障转移(可靠性)的原因,Flume 似乎是显而易见的选择。
但是,我们认为我们肯定遗漏了一些明显的东西,因为我们没有看到 Flume 如何提供自动可伸缩性和故障转移。
我想为每个日志行定义一个流程,执行 A,然后将其传递并执行 B,然后将其传递并执行 C,依此类推,这似乎与 Flume 很匹配。但是,我希望能够用纯粹的逻辑术语来定义这个流程,然后基本上说,“嘿,Flume,这里是服务器,这里是流程定义,开始工作吧!”。服务器会死掉,(并且操作会重新启动它们),我们会将服务器添加到集群中,并让其他服务器退役,而 Flume 只会将工作定向到任何具有可用容量的节点。
这个描述是 Hadoop map-reduce 如何实现可伸缩性和故障转移,我假设 Flume 也是一样。但是,文档似乎暗示我需要手动配置每个逻辑节点在哪些物理服务器上运行,并为每个节点配置特定的故障转移方案。
我是对的,Flume 没有达到我们的目的,还是我错过了什么?
谢谢你的帮助。