kafka集群中有些服務(wù)器磁盤IO util很高導(dǎo)致機(jī)器load居高不下,想把這些機(jī)器的partition數(shù)據(jù)文件夾分到多個(gè)掛載不同磁盤的目錄上降低單個(gè)磁盤的IO。主要有兩種方法:
刪除當(dāng)前的數(shù)據(jù)文件夾下所有內(nèi)容
重新配置server.properties中l(wèi)og.dirs參數(shù)忠荞,添加多個(gè)目錄,逗號(hào)隔開蝌焚,重啟kafka号杏。該操作會(huì)刪除掉該機(jī)器所有數(shù)據(jù),重啟后該節(jié)點(diǎn)會(huì)去其他kafka節(jié)點(diǎn)找尋replication并拉取主经,新的數(shù)據(jù)會(huì)寫入到配置的多個(gè)目錄中庭惜。即护赊,該方法適合于GB級(jí)別的數(shù)據(jù)量,如果數(shù)據(jù)量較大节吮,節(jié)點(diǎn)重新加入ISR的時(shí)間會(huì)很長透绩,并且會(huì)給網(wǎng)絡(luò)/集群帶來很高負(fù)載祈秕。移動(dòng)部分partitions文件夾并修改offset-checkpoint文件
每個(gè)log.dirs設(shè)置的目錄下都會(huì)有三個(gè)offset-checkpoint文件和meta.properties文件:replication-offset-checkpoint, recovery-point-offset-checkpoint和cleaner-offset-checkpoint,這三個(gè)文件中包含partition當(dāng)前提交的offset等信息请毛,meta.properties文件包含當(dāng)前版本號(hào)和該節(jié)點(diǎn)的id信息。我們只需要拷貝并修改這四個(gè)信息文件方仿,然后移動(dòng)partition數(shù)據(jù)文件夾到新文件夾中重啟kafka即可,由于該節(jié)點(diǎn)之前的數(shù)據(jù)未丟失厂汗,所以節(jié)點(diǎn)重啟后會(huì)很快恢復(fù)加入ISR娶桦。
offset-checkpoint文件的說明和該方法的具體操作.
當(dāng)然直接停掉kafka然后移動(dòng)部分partition數(shù)據(jù)文件夾到新目錄做軟鏈也可行汁汗,只是當(dāng)刪除該topic的時(shí)候也只會(huì)刪除鏈接文件