Apache Flume – 配置
Apache Flume – 配置
安装 Flume 后,我们需要使用配置文件对其进行配置,该配置文件是具有键值对的 Java 属性文件。我们需要将值传递给文件中的键。
在 Flume 配置文件中,我们需要 –
- 命名当前代理的组件。
- 描述/配置源。
- 描述/配置接收器。
- 描述/配置通道。
- 将源和接收器绑定到通道。
通常我们可以在 Flume 中拥有多个代理。我们可以通过使用唯一的名称来区分每个代理。使用这个名称,我们必须配置每个代理。
命名组件
首先,您需要命名/列出代理的源、接收器和通道等组件,如下所示。
agent_name.sources = source_name agent_name.sinks = sink_name agent_name.channels = channel_name
Flume 支持各种源、接收器和通道。它们列在下表中。
Sources | 频道 | 水槽 |
---|---|---|
|
|
|
您可以使用其中任何一个。例如,如果您使用 Twitter 源通过内存通道将 Twitter 数据传输到 HDFS 接收器,并且代理名称为 id TwitterAgent,则
TwitterAgent.sources = Twitter TwitterAgent.channels = MemChannel TwitterAgent.sinks = HDFS
列出代理的组件后,您必须通过为其属性提供值来描述源、接收器和通道。
描述来源
每个源都有一个单独的属性列表。名为“type”的属性对于每个源都是通用的,它用于指定我们正在使用的源的类型。
与属性“类型”一起,需要提供特定源的所有必需属性的值来配置它,如下所示。
agent_name.sources. source_name.type = value agent_name.sources. source_name.property2 = value agent_name.sources. source_name.property3 = value
例如,如果我们考虑twitter source,以下是我们必须为其提供值来配置它的属性。
TwitterAgent.sources.Twitter.type = Twitter (type name) TwitterAgent.sources.Twitter.consumerKey = TwitterAgent.sources.Twitter.consumerSecret = TwitterAgent.sources.Twitter.accessToken = TwitterAgent.sources.Twitter.accessTokenSecret =
描述水槽
就像源一样,每个接收器都有一个单独的属性列表。名为“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 directory’s Path to store the data
描述频道
Flume 提供了多种通道来在源和接收器之间传输数据。因此,除了来源和渠道之外,还需要描述代理中使用的渠道。
要描述每个通道,您需要设置所需的属性,如下所示。
agent_name.channels.channel_name.type = value agent_name.channels.channel_name. property2 = value agent_name.channels.channel_name. property3 = value
例如,如果我们考虑memory channel,以下是我们必须为其提供值来配置它的属性。
TwitterAgent.channels.MemChannel.type = memory (type name)
将 Source 和 Sink 绑定到 Channel
由于channel连接sources和sinks,所以需要将它们都绑定到channel上,如下图。
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 代理
配置完成后,我们要启动 Flume 代理。操作如下 –
$ bin/flume-ng agent --conf ./conf/ -f conf/twitter.conf Dflume.root.logger=DEBUG,console -n TwitterAgent
其中 –
-
agent – 启动 Flume 代理的命令
-
–conf ,-c<conf> – 使用 conf 目录中的配置文件
-
-f<file> – 指定配置文件路径,如果丢失
-
–name, -n <name> – 推特代理的名称
-
-D property =value – 设置 Java 系统属性值。