本节书摘来自华章出版社《Flume日志收集与MapReduce模式》一书中的第1章,第1.2节,作者 [美] 史蒂夫·霍夫曼(Steve Hoffman)斯里纳特·佩雷拉(Srinath Perera),更多章节内容可以访问云栖社区“华章计算机”公众号查看
1.2 Flume 1.X(Flume-NG)
Flume之所以会重构有很多原因,如果对细节感兴趣可以参考https://issues.apache.org/jira/browse/FLUME-728。一开始的重构分支最后变成了Flume 1.X的开发主线。
Flume 1.X最为明显的变化是不再使用中心化的配置Master/Masters与Zookeeper。Flume 0.9的配置有些过度烦琐,并且极易出错。此外,中心化的配置已经超出了Flume的目标范围。取代中心化配置的是一个简单的磁盘上的配置文件(不过配置文件是可插拔的,因此可以替换)。这些配置文件很容易通过诸如cf-engine、chef及puppet等工具分发。如果使用的是Cloudera分发包,那么可以通过Cloudera管理器来管理配置——最近其许可发生了变化,增加了节点限制,因此增加了吸引力。请确保不要手工管理这些配置,否则就要一直采用手工方式编辑这些文件了。
Flume 1.X的另一个主要差别是输入数据的读取与输出数据的写入现在由不同的工作线程(称为运行器)来处理了。在Flume 0.9中,输入线程也执行对输出的写入(故障恢复重试除外)。如果输出写入器很慢(而不仅仅是完全失败),那么它会阻塞Flume接收数据的能力。这种新的异步设计使得输入线程完全意识不到任何下游的问题。
本书介绍的Flume版本是1.3.1(也是本书撰写之际Flume的当前版本)。