本文为您介绍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,才能正确滚动文件。