安装Flume后,我们需要使用配置文件对其进行配置,配置文件是具有键值对的Java属性文件.我们需要将值传递给文件中的键.
在Flume配置文件中,我们需要 :
命名当前代理的组件.
描述/配置源.
描述/配置接收器.
描述/配置频道.
将源和接收器绑定到频道.
通常我们可以在Flume中拥有多个代理.我们可以使用唯一名称区分每个代理.使用此名称,我们必须配置每个代理.
命名组件
首先,您需要命名/列出组件等作为代理的源,接收器和通道,如下所示.
agent_name.sources = source_name agent_name.sinks = sink_name agent_name.channels = channel_name
Flume支持各种源,接收器和通道.它们列在下面的表格中.
来源 | 频道 | Sinks |
---|---|---|
|
|
|
您可以使用其中任何一种.例如,如果您使用Twitter源通过内存通道将Twitter数据传输到HDFS接收器,并且代理商名称id TwitterAgent ,那么
TwitterAgent.sources = Twitter TwitterAgent.channels = MemChannel TwitterAgent.sinks = HDFS
上市后在代理的组件中,您必须通过为其属性提供值来描述源(接收器),接收器和通道.
描述源
每个来源都有一个单独的属性列表.名为"type"的属性对于每个源都是通用的,它用于指定我们使用的源的类型.
除了属性"type"之外,还需要提供特定源的所有必需属性的值以进行配置,如下所示.
agent_name.sources. source_name.type = value agent_name.sources. source_name.property2 = value agent_name.sources. source_name.property3 = value
例如,如果我们考虑 twitter源,以下是我们的属性必须提供值来配置它.
TwitterAgent.sources.Twitter.type = Twitter(类型名称) TwitterAgent .sources.Twitter.consumerKey = TwitterAgent.sources.Twitter.consumerSecret = TwitterAgent.sources.Twitter.accessToken = TwitterAgent.sources.Twitter.accessTokenSecret =
描述接收器
就像源一样,每个接收器都有一个单独的属性列表.名为"type"的属性对于每个接收器都是通用的,它用于指定我们正在使用的接收器的类型.除了属性"type"之外,还需要为特定接收器的所有必需属性提供值来配置它,如下所示.
agent_name.sinks. sink_name.type = value agent_name.sinks. sink_name.property2 = value agent_name.sinks. sink_name.property3 = value
例如,如果我们考虑 HDFS sink ,以下是我们必须要考虑的属性提供配置它的值.
TwitterAgent.sinks.HDFS.type = hdfs(type name) TwitterAgent. sinks.HDFS.hdfs.path = HDFS目录存储数据的路径
描述频道
Flume提供各种在源和汇之间传输数据的通道.因此,与源和通道一起,需要描述代理中使用的通道.
要描述每个通道,需要设置所需的属性,如下所示.
agent_name.channels.channel_name.type = value agent_name.channels.channel_name. property2 = value agent_name.channels.channel_name. property3 = value
例如,如果我们考虑内存通道,以下是我们必须>的属性i>提供值来配置它.
TwitterAgent.channels.MemChannel.type = memory(type name)
将源和接收器绑定到通道
由于通道连接源和接收器,因此需要将它们绑定到通道,如下所示.
agent_name.sources.source_name.channels = channel_name agent_name.sinks.sink_name.channels = channel_name
以下示例显示如何将源和接收器绑定到通道.在这里,我们考虑 twitter源,内存频道,和 HDFS接收器.
TwitterAgent .sources.Twitter.channels = MemChannel TwitterAgent.sinks.HDFS.channels = MemChannel
启动Flume Agent
配置完成后,我们必须启动Flume代理.它完成如下 :
$ bin/flume-ng agent --conf ./conf/-f conf/twitter.conf Dflume.root.logger = DEBUG,console -n TwitterAgent
where :
代理商 : 启动Flume代理的命令
- conf,-c< conf> : 在conf目录中使用配置文件
-f< file> : 指定配置文件路径(如果缺少)
- name,-n< name> : Twitter代理商的名称
-D property = value : 设置Java系统属性值.