本文為您介紹Taildir Source、File Channel和HDFS Sink配置中的一些常用參數(shù)調(diào)優(yōu)。

Taildir Source

參數(shù) 描述
filegroups 將一個(gè)目錄拆分為多個(gè),增加Source讀取并發(fā)。
batchSize 默認(rèn)值為100。一次性讀取數(shù)據(jù)行數(shù),適當(dāng)調(diào)大該參數(shù)值可以提高吞吐量。

File Channel

參數(shù) 描述
checkpointInterval 默認(rèn)值為30,單位為秒(s)。適當(dāng)調(diào)小該參數(shù)值可以縮短寫CheckPoint間隔。
useDualCheckpoints 默認(rèn)值為false。修改該參數(shù)值為true,可以防止重啟時(shí)因?yàn)镃heckPoint丟失,從頭讀取所有Event。
maxFileSize 默認(rèn)值為1.6,單位為GB。表示單個(gè)DATA文件的大小。

適當(dāng)調(diào)小該參數(shù)值以便FileChannel可以盡快移除過期文件,減少占用磁盤。

capacity 默認(rèn)值為1000000。表示Channel最多保留的Events數(shù)量。

調(diào)大該參數(shù)可以優(yōu)化吞吐量,也可以使用該參數(shù)乘以單個(gè)Event大小來估算磁盤占用情況。

transactionCapacity 默認(rèn)值為10000。Channel支持的單個(gè)事務(wù)的最大容量。

HDFS Sink

參數(shù) 描述
hdfs.batchSize 默認(rèn)值為100。向HDFS寫入內(nèi)容時(shí)每次批量操作的Event數(shù)量。
適當(dāng)調(diào)大該參數(shù)可提高吞吐量。
說明 建議此參數(shù)值和Source配置中batchSize的參數(shù)值保持一致,且均不應(yīng)該超過Channel配置中transactionCapacity的參數(shù)值。
hdfs.threadsPoolSize 默認(rèn)值為10,HDFS IO線程數(shù),根據(jù)機(jī)器配置調(diào)整。
hdfs.useLocalTimeStamp 默認(rèn)值為false。表示是否使用本地時(shí)間戳。

如果需要在Event的Head中添加時(shí)間戳,設(shè)置該參數(shù)值為true。

hdfs.rollInterval 默認(rèn)值為30,單位為秒(s)。表示間隔多久臨時(shí)文件滾動(dòng)為目標(biāo)文件。

設(shè)置為0時(shí),表示不基于時(shí)間滾動(dòng)。

hdfs.rollSize 默認(rèn)值為1024,單位為字節(jié)(Byte)。表示文件大小到達(dá)該參數(shù)值時(shí),滾動(dòng)為目標(biāo)文件。

設(shè)置為0時(shí),表示不基于大小滾動(dòng)。

hdfs.rollCount 默認(rèn)10個(gè)事件。表示事件數(shù)量達(dá)到該數(shù)量時(shí)滾動(dòng)為目標(biāo)文件。

設(shè)置為0時(shí),表示不基于事件數(shù)量滾動(dòng)。

hdfs.minBlockReplicas 默認(rèn)為HDFS副本數(shù),表示HDFS文件塊的最小副本數(shù)。

通常配置為1,才能正確滾動(dòng)文件。