我有一个水槽代理,可以将数据提取到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的
答案 0 :(得分:1)
为什么要使用spooldir链接两个Flume代理?这将是非常缓慢的,并且是一个令人惊讶的配置。随着每批处理的进行,您将承担频繁fsyncs的成本。
我建议您使用Avro Sink和Avro Source链接它们。我还要将批量大小提升到至少1000.(计算机真的像批次一样,Flume设置为这样做。)