如何提高水槽剂的加工速度

时间:2015-08-02 05:20:45

标签: flume flume-ng

我有一个水槽代理,可以将数据提取到elasticsearch中。代理正在使用spoolDir来源。还有另一个代理程序将文件写入elasticsearch代理程序的spoolDir。

随着文件的增加,处理后的文件和未处理文件之间的差异也会增加。

我想增加水槽代理处理的事件数量,以加快摄取过程。

以下是水槽剂的配置。

  

agent04.sources = s1

     

agent04.channels = ch1

     

agent04.channels = memoryChannel

     

agent04.channels.memoryChannel.type = memory

     

agent04.channels.memoryChannel.capacity = 100000

     

agent04.channels.memoryChannel.transactionCapacity = 1000

     

agent04.sources.s1.channels = memoryChannel

     

agent04.sources.s1.type = spooldir

     

agent04.sources.s1.spoolDir = / DataCollection / Flume_Cleaner_Output / Json_Elastic /

     

agent04.sources.s1.deserializer.maxLineLength = 100000

     

agent04.sinks = elasticsearch

     

agent04.sinks.elasticsearch.channel = memoryChannel

     

agent04.sinks.elasticsearch.type = org.css.cssElasticsearchSink

     

agent04.sinks.elasticsearch.batchSize = 400

     

agent04.sinks.elasticsearch.hostNames = elastic-node01.css.org

     

agent04.sinks.elasticsearch.indexName = all_collections

     

agent04.sinks.elasticsearch.indexType = live_tweets

     

agent04.sinks.elasticsearch.indexNameBuilder = org.css.sa.flume.elasticsearch.sink.indexNameBuilder.HeaderValueBasedIndexNameBuilder

     

agent04.sinks.elasticsearch.clusterName = css_rai_social

     

agent04.sinks.elasticsearch.serializer = org.jai.flume.sinks.elasticsearch.serializer.ElasticSearchJsonBodyEventSerializer

     

agent04.sinks.elasticsearch.cache_period_ms = 90d的

1 个答案:

答案 0 :(得分:1)

为什么要使用spooldir链接两个Flume代理?这将是非常缓慢的,并且是一个令人惊讶的配置。随着每批处理的进行,您将承担频繁fsyncs的成本。

我建议您使用Avro Sink和Avro Source链接它们。我还要将批量大小提升到至少1000.(计算机真的像批次一样,Flume设置为这样做。)