Apache Flume配置 Apache Flume环境 Apache Flume获取Twitter数据 在安装Flume之后,我们需要使用配置文件来配置它,该配置文件是具有 键值对 的Java属性文件。我们需要将值传递给文件中的键。 在Flume配置文件中,我们需要 命名当前代理的组件。 描述/配置源。 描述/配置接收器。 描述/配置频道。 将源和接收器绑定到通道。 通常我们可以在Flume中拥有多个代理。我们可以使用唯一名称区分每个代理。使用此名称,我们必须配置每个代理。 命名组件 首先,您需要命名/列出组件,例如源,接收器和代理的通道,如下所示。 agent_name.sources = source_name agent_name.sinks = sink_name agent_name.channels = channel_name Flume支持各种信号源,接收器和通道。它们列在下表中。 Sources Channels Sinks 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 Sink Thrift Sink IRC Sink File Roll Sink Null Sink HBaseSink AsyncHBaseSink MorphlineSolrSink ElasticSearchSink Kite Dataset Sink Kafka Sink 你可以使用它们中的任何一个。例如,如果您使用Twitter源通过内存通道将Twitter数据传输到HDFS接收器,并且代理名称为 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 (type name) TwitterAgent.sources.Twitter.consumerKey = TwitterAgent.sources.Twitter.consumerSecret = TwitterAgent.sources.Twitter.accessToken = TwitterAgent.sources.Twitter.accessTokenSecret = 描述Flume 就像源一样,每个接收器都有一个单独的属性列表。名为“type”的属性对于每个接收器都是通用的,它用于指定我们正在使用的接收器的类型。除了属性“type”之外,还需要为特定接收器的所有 必需 属性提供值以进行配置,如下所示。 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 描述频道 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) 将源和接收器绑定到通道 由于通道连接源和接收器,因此需要将它们两者绑定到通道,如下所示。 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 agent - 启动Flume代理的命令 --conf,-c - 在conf目录中使用配置文件 -f - 指定配置文件路径(如果缺少) --name,-n - twitter代理的名称 -D property = value - 设置Java系统属性值。 Apache Flume环境 Apache Flume获取Twitter数据