本文为您介绍Taildir Source、File Channel和HDFS Sink配置中的一些常用参数调优。

Taildir Source

参数 描述
filegroups 将一个目录拆分为多个,增加Source读取并发。
batchSize 默认值为100。一次性读取数据行数,适当调大该参数值可以提高吞吐量。

File Channel

参数 描述
checkpointInterval 默认值为30,单位为秒(s)。适当调小该参数值可以缩短写CheckPoint间隔。
useDualCheckpoints 默认值为false。修改该参数值为true,可以防止重启时因为CheckPoint丢失,从头读取所有Event。
maxFileSize 默认值为1.6,单位为GB。表示单个DATA文件的大小。

适当调小该参数值以便FileChannel可以尽快移除过期文件,减少占用磁盘。

capacity 默认值为1000000。表示Channel最多保留的Events数量。

调大该参数可以优化吞吐量,也可以使用该参数乘以单个Event大小来估算磁盘占用情况。

transactionCapacity 默认值为10000。Channel支持的单个事务的最大容量。

HDFS Sink

参数 描述
hdfs.batchSize 默认值为100。向HDFS写入内容时每次批量操作的Event数量。
适当调大该参数可提高吞吐量。
说明 建议此参数值和Source配置中batchSize的参数值保持一致,且均不应该超过Channel配置中transactionCapacity的参数值。
hdfs.threadsPoolSize 默认值为10,HDFS IO线程数,根据机器配置调整。
hdfs.useLocalTimeStamp 默认值为false。表示是否使用本地时间戳。

如果需要在Event的Head中添加时间戳,设置该参数值为true。

hdfs.rollInterval 默认值为30,单位为秒(s)。表示间隔多久临时文件滚动为目标文件。

设置为0时,表示不基于时间滚动。

hdfs.rollSize 默认值为1024,单位为字节(Byte)。表示文件大小到达该该参数值时,滚动为目标文件。

设置为0时,表示不基于大小滚动。

hdfs.rollCount 默认10个事件。表示事件数量达到该数量时滚动为目标文件。

设置为0时,表示不基于事件数量滚动。

hdfs.minBlockReplicas 默认为HDFS副本数,表示HDFS文件块的最小副本数。

通常配置为1,才能正确滚动文件。