1

Flumeを使用してlog4jメッセージをhdfsに送信するおもちゃのセットアップがあります。多くの小さなファイルを回避するように hdfs シンクを構成できません。ファイル サイズが 10 MB に達するたびに新しいファイルを作成するように hdfs シンクを構成できると思っていましたが、まだ約 1.5 KB のファイルが作成されています。

これが私の現在のflume構成です:

a1.sources=o1
a1.sinks=i1
a1.channels=c1

#source configuration
a1.sources.o1.type=avro
a1.sources.o1.bind=0.0.0.0
a1.sources.o1.port=41414

#sink config
a1.sinks.i1.type=hdfs
a1.sinks.i1.hdfs.path=hdfs://localhost:8020/user/myName/flume/events
#never roll-based on time
a1.sinks.i1.hdfs.rollInterval=0
#10MB=10485760
a1.sinks.il.hdfs.rollSize=10485760
#never roll base on number of events
a1.sinks.il.hdfs.rollCount=0

#channle config
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100

a1.sources.o1.channels=c1
a1.sinks.i1.channel=c1
4

3 に答える 3

0

これは、メモリ チャネルとその容量が原因で発生する可能性があります。容量がいっぱいになるとすぐに、HDFS にデータをダンプしていると思います。メモリの代わりにファイル チャネルを使用してみましたか?

于 2014-10-09T07:14:10.513 に答える
0

HDFS シンクには、hdfs.batchSize「HDFS にフラッシュされる前にファイルに書き込まれたイベントの数」を表すプロパティ (デフォルトは 100) があります。ここがあなたの問題だと思います。

他のすべてのプロパティも確認することを検討してください: HDFS Sink

于 2014-10-03T10:37:41.753 に答える