私は最近、質問Apache Flume - send only new file contentsFlumeでtaildirソースを使用して、.txtファイルの最新の行だけを追加するにはどうすればよいですか?
私はより多くを学び、水路の将来のユーザーbenefittoより多くを提供するために、質問を言い換えていますが尋ねました。
セットアップ:2つのサーバー.1つは、.txtファイルを使用して、行を定期的に追加します。
目的:flume TAILDIR sourceを使用して、最後に書き込まれた行を別のサーバー上のファイルに追加します。
問題:ソースファイルに新しい行のデータが追加されるたびに、現在の構成では、サーバー1のファイル内のすべてがサーバー2のファイルに追加されます。その結果、ファイル2に重複した行が作成され、サーバからサーバ1 1.
構成:
#configure the agent
agent.sources=r1
agent.channels=k1
agent.sinks=c1
#using memort channel to hold upto 1000 events
agent.channels.k1.type=memory
agent.channels.k1.capacity=1000
agent.channels.k1.transactionCapacity=100
#connect source, channel,sink
agent.sources.r1.channels=k1
agent.sinks.c1.channel=k1
#define source
agent.sources.r1.type=TAILDIR
agent.sources.r1.channels=k1
agent.sources.r1.filegroups=f1
agent.sources.r1.filegroups.f1=/home/tail_test_dir/test.txt
agent.sources.r1.maxBackoffSleep=1000
#connect to another box using avro and send the data
agent.sinks.c1.type=avro
agent.sinks.c1.hostname=10.10.10.4
agent.sinks.c1.port=4545
サーバー2の構成:
#configure the agent
agent.sources=r1
agent.channels=k1
agent.sinks=c1
#using memory channel to hold up to 1000 events
agent.channels.k1.type=memory
agent.channels.k1.capacity=1000
agent.channels.k1.transactionCapacity=100
#connect source, channel, sink
agent.sources.r1.channels=k1
agent.sinks.c1.channel=k1
#here source is listening at the specified port using AVRO for data
agent.sources.r1.type=avro
agent.sources.r1.bind=0.0.0.0
agent.sources.r1.port=4545
#use file_roll and write file at specified directory
agent.sinks.c1.type=file_roll
agent.sinks.c1.sink.directory=/home/Flume_dump