1

我已经测试了 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

只能运行一个水槽。超过两个怎么办?

4

2 回答 2

3

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

agent1.sources.spooldirSource1.spooldir = server1/path
agent1.sources.spooldirSource1.channel = myMemoryChannel
agent1.sources.spooldirSource2.spooldir = server2/path
agent1.sources.spooldirSource2.channel = myMemoryChannel
于 2013-10-09T15:46:09.010 回答
0

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

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

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

于 2018-07-02T14:25:05.623 回答