如何确定Flume中水槽的batchSize?

时间:2017-02-27 07:46:40

标签: flume bigdata

我正在设置Flume Agent的属性,我不确定我应该为batchSize使用什么值(要一起批量发送的事件数)。

在我的特定情况下,我将把控制台用作接收器。据我所知,记录器 - 接收器是在这种情况下使用的类型。但Flume文档没有提到这种接收器的batchSize参数。是不是有必要为记录器接收器定义batchSize?

1 个答案:

答案 0 :(得分:0)

好吧,我找到了一个问题的答案:是否有必要为记录器接收器定义batchSize?

https://flume.apache.org/FlumeUserGuide.html#logger-sink没有batchSize,而是有一个参数calle maxBytesToLog ,它定义了要记录的事件主体的最大字节数(默认情况下,它的值为16)。这里有一个简单的例子我发现了一个Flume Agent,它使用控制台作为接收​​器:

private IEnumerable<Season> _seasons;

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public IEnumerable<Season> seasons
{
    get { return _seasons == null || _seasons.Count() == 0 ? null : _seasons; }
    set { _seasons = value; }
}

来自:https://medium.com/@DCA/something-about-flume-3cb720ba00e8#.37zs23dnt

关于主要问题如何确定水槽的批量大小

关于hdfs批量大小,批量大小越大,性能越好。但是,请记住,如果事务失败,将重放整个事务,这可能会导致下游重复事件的影响。

自: https://cwiki.apache.org/confluence/display/FLUME/BatchSize,+ChannelCapacity+and+ChannelTransactionCapacity+Properties