2016-08-03 12 views
0

私は奇妙な問題に直面しています。 私はflumeからHDFSに多くの情報を集約しようとしています。 小さすぎるファイルを避けるために推奨設定を適用しましたが、動作しませんでした。 ここに私の設定ファイルがあります。Flume/Avroソース、メモリチャンネル、HDFSシンク - 小さすぎるファイル

# single-node Flume configuration 
# Name the components on this agent 
a1.sources = r1 
a1.sinks = k1 
a1.channels = c1 

# Describe/configure the source 
a1.sources.r1.type = avro 
a1.sources.r1.bind = 0.0.0.0 
a1.sources.r1.port = 5458 
a1.sources.r1.threads = 20 

# Describe the HDFS sink 
a1.sinks.k1.type = hdfs 
a1.sinks.k1.hdfs.path = hdfs://myhost:myport/user/myuser/flume/events/%{senderType}/%{senderName}/%{senderEnv}/%y-%m-%d/%H%M 
a1.sinks.k1.hdfs.filePrefix = logs- 
a1.sinks.k1.hdfs.fileSuffix = .jsonlog 
a1.sinks.k1.hdfs.fileType = DataStream 
a1.sinks.k1.hdfs.writeFormat = Text 
a1.sinks.k1.hdfs.batchSize = 100 
a1.sinks.k1.hdfs.useLocalTimeStamp = true 
#never roll-based on time 
a1.sinks.k1.hdfs.rollInterval=0 
##10MB=10485760, 128MB=134217728, 256MB=268435456 
a1.sinks.kl.hdfs.rollSize=10485760 
##never roll base on number of events 
a1.sinks.kl.hdfs.rollCount=0 
a1.sinks.kl.hdfs.round=false 

# Use a channel which buffers events in memory 
a1.channels.c1.type = memory 
a1.channels.c1.capacity = 5000 
a1.channels.c1.transactionCapacity = 1000 

# Bind the source and sink to the channel 
a1.sources.r1.channels = c1 
a1.sinks.k1.channel = c1 

この設定が機能し、ファイルが表示されます。しかし、ファイルの重量平均は1.5kbです。 Flumeコンソール出力は、この種の情報を提供します。

16/08/03 09:48:31 INFO hdfs.BucketWriter: Creating hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484507.jsonlog.tmp 
16/08/03 09:48:31 INFO hdfs.BucketWriter: Closing hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484507.jsonlog.tmp 
16/08/03 09:48:31 INFO hdfs.BucketWriter: Renaming hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484507.jsonlog.tmp to hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484507.jsonlog 
16/08/03 09:48:31 INFO hdfs.BucketWriter: Creating hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484508.jsonlog.tmp 
16/08/03 09:48:31 INFO hdfs.BucketWriter: Closing hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484508.jsonlog.tmp 
16/08/03 09:48:31 INFO hdfs.BucketWriter: Renaming hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484508.jsonlog.tmp to hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484508.jsonlog 
16/08/03 09:48:31 INFO hdfs.BucketWriter: Creating hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484509.jsonlog.tmp 
16/08/03 09:48:31 INFO hdfs.BucketWriter: Closing hdfs://myhost:myport/user/myuser/flume/events/a/b/c/16-08-03/0948/logs-.1470210484509.jsonlog.tmp 

誰かがこの問題について考えていますか?ここで


は、水路の動作に関するいくつかの情報です。

コマンドは フリューム-NG剤である-n A1 -c /パス/に/水路/ CONF --confファイルサンプルflume.conf -Dflume.root.logger = TRACE、コンソール-Xms8192m -Xmx16384m

:loggerディレクティブは機能しません。私は理由を理解していないが、私はよ...出力を開始

水路がある:

16/08/03 15:32:55 INFO node.PollingPropertiesFileConfigurationProvider: Configuration provider starting 
16/08/03 15:32:55 INFO node.PollingPropertiesFileConfigurationProvider: Reloading configuration file:sample-flume.conf 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:kl 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Added sinks: k1 Agent: a1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:kl 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:kl 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Post-validation flume configuration contains configuration for agents: [a1] 
16/08/03 15:32:55 INFO node.AbstractConfigurationProvider: Creating channels 
16/08/03 15:32:55 INFO channel.DefaultChannelFactory: Creating instance of channel c1 type memory 
16/08/03 15:32:55 INFO node.AbstractConfigurationProvider: Created channel c1 
16/08/03 15:32:55 INFO source.DefaultSourceFactory: Creating instance of source r1, type avro 
16/08/03 15:32:55 INFO sink.DefaultSinkFactory: Creating instance of sink: k1, type: hdfs 
16/08/03 15:32:56 INFO hdfs.HDFSEventSink: Hadoop Security enabled: false 
16/08/03 15:32:56 INFO node.AbstractConfigurationProvider: Channel c1 connected to [r1, k1] 
16/08/03 15:32:56 INFO node.Application: Starting new configuration:{ sourceRunners:{r1=EventDrivenSourceRunner: { source:Avro source r1: { bindAddress: 0.0.0.0, port: 5458 } }} sinkRunners:{k1=SinkRunner: { policy:[email protected] counterGroup:{ name:null counters:{} } }} channels:{c1=org.apache.flume.channel.MemoryChannel{name: c1}} } 
16/08/03 15:32:56 INFO node.Application: Starting Channel c1 
16/08/03 15:32:56 INFO instrumentation.MonitoredCounterGroup: Monitored counter group for type: CHANNEL, name: c1: Successfully registered new MBean. 
16/08/03 15:32:56 INFO instrumentation.MonitoredCounterGroup: Component type: CHANNEL, name: c1 started 
16/08/03 15:32:56 INFO node.Application: Starting Sink k1 
16/08/03 15:32:56 INFO node.Application: Starting Source r1 
16/08/03 15:32:56 INFO source.AvroSource: Starting Avro source r1: { bindAddress: 0.0.0.0, port: 5458 }... 
16/08/03 15:32:56 INFO instrumentation.MonitoredCounterGroup: Monitored counter group for type: SINK, name: k1: Successfully registered new MBean. 
16/08/03 15:32:56 INFO instrumentation.MonitoredCounterGroup: Component type: SINK, name: k1 started 
16/08/03 15:32:56 INFO instrumentation.MonitoredCounterGroup: Monitored counter group for type: SOURCE, name: r1: Successfully registered new MBean. 
16/08/03 15:32:56 INFO instrumentation.MonitoredCounterGroup: Component type: SOURCE, name: r1 started 
16/08/03 15:32:56 INFO source.AvroSource: Avro source r1 started. 

私はもっと詳細な出力を持つことができないので、私は

[...] 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Added sinks: k1 Agent: a1 
16/08/03 15:32:55 INFO conf.FlumeConfiguration: Processing:k1 
[...] 

のような、その情報を仮定しなければなりません

は、シンクが正しく設定されていることを示します。


PS:私は以下の答えを見たが、それらの作品のどれも(私は...何かを見逃してはなりません)。

flume-hdfs-sink-generates-lots-of-tiny-files-on-hdfs

too-many-small-files-hdfs-sink-flume

あなたの要件ごと

flume-tiering-data-flows-using-the-avro-source-and-sink

flume-hdfs-sink-keeps-rolling-small-files

+0

ローリング用の他のオプションがうまく機能していれば試しましたか? Flumeを起動した直後にログを確認してみてください。通常、ヒントがあるかもしれません。私はしばらく前に使用していた設定とシンクの設定をチェックしていますが、これは非常によく似ています(チャンネル容量は少し大きめですが、シンクには影響ありません)。 – Serhiy

+0

@Serhiyあなたのご意見ありがとうございます。私はflumeのコンソール出力で投稿を編集しました。私はいくつかのローリング情報を変更しようとしています。それは失敗しているすべてのローリング構成情報のようです。私は実際にローリングカウンター(a1.sinks.kl.hdfs.rollCount = 1000)を設定しようとしましたが、動作しませんでした。私はHDP 2.3.2を実行していますが、ここから調整することができますか? – ollie314

+0

デバッグレベルでロギングをセットアップできますか?私のインストールでは 'flume/conf'ディレクトリに' log4j.properties'があります。 'flume.root.logger'、' log4j.logger.org 'を設定してみてください。apache.flume.lifecycle'と 'log4j.logger.org.apache.hadoop'を' DEBUG'に変更します。 – Serhiy

答えて

0

増加バッチサイズ

a1.sinks.k1.hdfs.batchSize =

関連する問題