Flume教程

Flume 配置

安装 Flume 后,我们需要使用配置文件对其进行配置,该配置文件是具有 键值对的 Java 属性文件。我们需要将值传递给文件中的键。
在 Flume 配置文件中,我们需要-
为当前代理的组件命名。 描述/配置源。 描述/配置接收器。 描述/配置频道。 将源和接收器绑定到通道。
通常我们可以在 Flume 中拥有多个代理。我们可以通过使用唯一的名称来区分每个代理。使用这个名称,我们必须配置每个代理。

命名组件

首先,您需要命名/列出代理的源、接收器和通道等组件,如下所示。
agent_name.sources = source_name 
agent_name.sinks = sink_name 
agent_name.channels = channel_name 
Flume 支持各种源、接收器和通道。它们列在下表中。
来源 频道 Flume
Avro Source Thrift Source Exec Source JMS Source Spooling Directory Source Twitter 1% firehose Source Kafka Source NetCat Source Sequence Generator Source Syslog Sources Syslog TCP Source Multiport Syslog TCP Source Syslog UDP Source HTTP Source Stress Source Legacy Sources Thrift Legacy Source Custom Source Scribe Source Memory Channel JDBC Channel Kafka Channel File Channel Spillable Memory Channel Pseudo Transaction Channel HDFS Sink Hive Sink Logger Sink Avro Flume Thrift Sink IRC Sink File Roll Sink Null Sink HBaseSink AsyncHBaseSink MorphlineSolrSink ElasticSearchSink Kite Dataset Sink Kafka Sink
您可以使用其中任何一个。例如,如果您使用 Twitter 源通过内存通道将 Twitter 数据传输到 HDFS 接收器,并且代理名称 ID TwitterAgent,则
TwitterAgent.sources = Twitter 
TwitterAgent.channels = MemChannel 
TwitterAgent.sinks = HDFS 
列出代理的组件后,您必须通过为其属性提供值来描述源、接收器和通道。

Describing the Source

每个来源都有一个单独的属性列表。名为"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 (type name) 
TwitterAgent.sources.Twitter.consumerKey =  
TwitterAgent.sources.Twitter.consumerSecret = 
TwitterAgent.sources.Twitter.accessToken =   
TwitterAgent.sources.Twitter.accessTokenSecret = 

Describing the Sink

就像源一样,每个接收器都有一个单独的属性列表。名为"type"的属性对于每个接收器都是通用的,它用于指定我们正在使用的接收器的类型。与"类型"属性一起,需要为所有 必需的提供值b> 特定接收器的属性来配置它,如下所示。
agent_name.sinks. sink_name.type = value 
agent_name.sinks. sink_name.property2 = value 
agent_name.sinks. sink_name.property3 = value
例如,如果我们考虑 HDFS 接收器,以下是我们 必须为其提供值以对其进行配置的属性。
TwitterAgent.sinks.HDFS.type = hdfs (type name)  
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data

Describing the Channel

Flume 提供了多种渠道来在源和接收器之间传输数据。因此,除了来源和渠道之外,还需要描述代理中使用的渠道。
要描述每个通道,您需要设置所需的属性,如下所示。
agent_name.channels.channel_name.type = value 
agent_name.channels.channel_name. property2 = value 
agent_name.channels.channel_name. property3 = value 
例如,如果我们考虑 内存通道,以下是我们 必须为其提供值以对其进行配置的属性。
TwitterAgent.channels.MemChannel.type = memory (type name)

Binding the Source and the Sink to the 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 

Binding the Source and the Sink to the Channel

配置完成后,我们要启动Flume代理。操作如下-
$ bin/flume-ng agent--conf ./conf/-f conf/twitter.conf 
Dflume.root.logger=DEBUG,console-n TwitterAgent 
where-
agent-启动 Flume 代理的命令 --conf ,-c -使用conf目录下的配置文件 -f -指定配置文件路径,如果丢失 --name,-n -Twitter 代理的名称 -D property =value-设置 Java 系统属性值。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4