在Agent中增加一个流

一个Flume Agent中可以包含多个独立的流。你可以在一个配置文件中列出所有的source、sink和channel等组件,这些组件可以被连接成多个流:

  1. # 这样列出Agent的所有source、sink和channel,多个用空格分隔
  2. <Agent>.sources = <Source1> <Source2>
  3. <Agent>.sinks = <Sink1> <Sink2>
  4. <Agent>.channels = <Channel1> <Channel2>

然后你就可以给这些source、sink连接到对应的channel上来定义两个不同的流。例如,如果你想在一个Agent中配置两个流,一个流从外部avro客户端接收数据然后输出到外部的HDFS,另一个流从一个文件读取内容然后输出到Avro Sink。配置如下:

  1. # 列出当前配置所有的source、sink和channel
  2. agent_foo.sources = avro-AppSrv-source1 exec-tail-source2 # 该agent中有2个sourse,分别是:avro-AppSrv-source1 和 exec-tail-source2
  3. agent_foo.sinks = hdfs-Cluster1-sink1 avro-forward-sink2 # 该agent中有2个sink,分别是:hdfs-Cluster1-sink1 和 avro-forward-sink2
  4. agent_foo.channels = mem-channel-1 file-channel-2 # 该agent中有2个channel,分别是:mem-channel-1 file-channel-2
  5.  
  6. # 这里是第一个流的配置
  7. agent_foo.sources.avro-AppSrv-source1.channels = mem-channel-1 # 与avro-AppSrv-source1相连接的channel是mem-channel-1
  8. agent_foo.sinks.hdfs-Cluster1-sink1.channel = mem-channel-1 # 与hdfs-Cluster1-sink1相连接的channel是mem-channel-1
  9.  
  10. # 这里是第二个流的配置
  11. agent_foo.sources.exec-tail-source2.channels = file-channel-2 # 与exec-tail-source2相连接的channel是file-channel-2
  12. agent_foo.sinks.avro-forward-sink2.channel = file-channel-2 # 与avro-forward-sink2相连接的channel是file-channel-2