天天看点

《Flume日志收集与MapReduce模式》一2.2 Flume配置文件概览

本节书摘来自华章出版社《flume日志收集与mapreduce模式》一书中的第2章,第2.2节,作者 [美] 史蒂夫·霍夫曼(steve hoffman)斯里纳特·佩雷拉(srinath perera),更多章节内容可以访问云栖社区“华章计算机”公众号查看

既然已经下载好了flume,下面来花点时间看看如何配置代理。

flume代理的默认配置提供者使用了一个简单的键值对的java属性文件,你需要在启动时向代理传递一个参数。由于可以在单个文件中配置多个代理,因此还需要额外传递一个代理标识符(叫作名字),这样它就知道该使用哪个代理了。在给出的示例中,我只指定了一个代理,使用agent这个名字。

每个代理的配置都以下面这3个参数开始:

《Flume日志收集与MapReduce模式》一2.2 Flume配置文件概览

每个源、通道与接收器在该代理的上下文中也有一个唯一的名字。比如,如果不打算传递apache访问日志,我就可以定义一个名为access的通道。该通道的配置都以前缀agent.channels.access开头。每个配置项都有一个type属性,告诉flume是哪种源、通道还是接收器。在该示例中,我们使用一个内存通道,其类型为memory。名为agent的代理中的名为access的通道的完整配置如下所示:

《Flume日志收集与MapReduce模式》一2.2 Flume配置文件概览

为源、通道与接收器指定的任何参数都会使用相同的前缀以额外属性的方式添加进来。memory通道有一个capacity参数,标识它能持有的最大的flume事件数量。假如我们不想使用100这个默认值,那么配置文件将会如下所示:

《Flume日志收集与MapReduce模式》一2.2 Flume配置文件概览

最后,我们需要将access通道名添加到agent.channels属性中,这样代理就会加载它了:

《Flume日志收集与MapReduce模式》一2.2 Flume配置文件概览

下面来看看使用标准“hello world”的完整示例。