0

私の場合、少なくとも HDFS のブロック サイズを 128 MB に近づけるように Flume を構成しようとしています。これは、ファイルごとに約10MBを書いている私の設定です:

###############################
httpagent.sources = http-source
httpagent.sinks = k1
httpagent.channels = ch3

# Define / Configure Source (multiport seems to support newer "stuff")
###############################
httpagent.sources.http-source.type = org.apache.flume.source.http.HTTPSource
httpagent.sources.http-source.channels = ch3
httpagent.sources.http-source.port = 5140

httpagent.sinks = k1
httpagent.sinks.k1.type = hdfs
httpagent.sinks.k1.channel = ch3
httpagent.sinks.k1.hdfs.path = hdfs://r3608/hadoop/hdfs/data/flumechannel3/0.5/
httpagent.sinks.k1.hdfs.fileType = DataStream
httpagent.sinks.HDFS.hdfs.writeFormat = Text
httpagent.sinks.k1.hdfs.rollCount = 0
httpagent.sinks.k1.hdfs.batchSize = 10000
httpagent.sinks.k1.hdfs.rollSize = 0



httpagent.sinks.log-sink.channel = memory
httpagent.sinks.log-sink.type = logger





# Channels
###############################

httpagent.channels = ch3
httpagent.channels.ch3.type = memory
httpagent.channels.ch3.capacity = 100000
httpagent.channels.ch3.transactionCapacity = 80000

したがって、問題は、約100MBのファイルを書き込むことができないことです..次のように構成を変更すると、少なくとも約100MBを書き込むことが期待されます。

httpagent.sinks = k1
httpagent.sinks.k1.type = hdfs
httpagent.sinks.k1.channel = ch3
httpagent.sinks.k1.hdfs.path = hdfs://r3608/hadoop/hdfs/data/flumechannel3/0.4test/
httpagent.sinks.k1.hdfs.fileType = DataStream
httpagent.sinks.HDFS.hdfs.writeFormat = Text
httpagent.sinks.k1.hdfs.rollSize = 100000000                                   
httpagent.sinks.k1.hdfs.rollCount = 0

しかし、その後、ファイルはさらに小さくなり、彼は約3〜8MBのファイルを書いています... hdfsにあるファイルを集約することは実際には不可能であるため、このファイルを大きくしたいと思っています。rollSize パラメータについて何か分からないことがありますか? または、デフォルト値があるので、その大きなファイルを書き込まないようにしますか?

4

1 に答える 1

3

時間間隔に基づいてロールしないように、rollInterval を 0 にオーバーライドする必要があります。

httpagent.sinks.k1.hdfs.rollInterval = 0
于 2014-07-24T09:54:44.267 に答える