Apache Flume多代理

时间:2013-10-07 22:09:10

标签: flume

我测试过Apache Flume将文件从本地传输到HDFS。但是如果来自多个服务器的源文件(将文件从不同服务器本地传输到HDFS),我可以只运行一个Flume实例并将更多代理添加到flume-conf.properties中吗?

如果可以,我如何在flume-conf.properties中编辑以下参数:

agent1.sources.spooldirSource1.spoolDir = ?(server1/path)
agent2.sources.spooldirSource2.spoolDir = ?(server2/path)

而且,我怎么能跑水槽?

./flume-ng agent -n agent -c conf -f apache-flume-1.4.0-bin/conf/flume-conf.properties

只能跑一个水槽。两个以上呢?

2 个答案:

答案 0 :(得分:3)

根据需要添加多个源,但将它们配置为使用相同的通道 - 然后使用相同的源。所以它就像(注意这个片段不完整):

agent1.sources.spooldirSource1.spooldir = server1/path
agent1.sources.spooldirSource1.channel = myMemoryChannel
agent1.sources.spooldirSource2.spooldir = server2/path
agent1.sources.spooldirSource2.channel = myMemoryChannel

答案 1 :(得分:0)

对于两个源使用相同的通道不是一个好习惯,您可以轻松地为该通道(对于MemoryChannel)获取outOfMemory,在这种情况下。 最好为每个来源(对于同一座席)使用一个频道

a1.sources = r1 r2
a1.sinks = k1 k2
a1.channels = c1 c2

然后将源r1链接到通道c1,将源r2链接到通道c2