kafka運行后添加多個數據目錄

kafka集群中有些服務器磁盤IO util很高導致機器load居高不下,想把這些機器的partition數據文件夾分到多個掛載不同磁盤的目錄上降低單個磁盤的IO。主要有兩種方法:

  1. 刪除當前的數據文件夾下所有內容
    重新配置server.properties中l(wèi)og.dirs參數,添加多個目錄,逗號隔開,重啟kafka。該操作會刪除掉該機器所有數據,重啟后該節(jié)點會去其他kafka節(jié)點找尋replication并拉取,新的數據會寫入到配置的多個目錄中。即,該方法適合于GB級別的數據量,如果數據量較大,節(jié)點重新加入ISR的時間會很長,并且會給網絡/集群帶來很高負載。

  2. 移動部分partitions文件夾并修改offset-checkpoint文件
    每個log.dirs設置的目錄下都會有三個offset-checkpoint文件和meta.properties文件:replication-offset-checkpoint, recovery-point-offset-checkpoint和cleaner-offset-checkpoint,這三個文件中包含partition當前提交的offset等信息,meta.properties文件包含當前版本號和該節(jié)點的id信息。我們只需要拷貝并修改這四個信息文件,然后移動partition數據文件夾到新文件夾中重啟kafka即可,由于該節(jié)點之前的數據未丟失,所以節(jié)點重啟后會很快恢復加入ISR。
    offset-checkpoint文件的說明和該方法的具體操作.


當然直接停掉kafka然后移動部分partition數據文件夾到新目錄做軟鏈也可行,只是當刪除該topic的時候也只會刪除鏈接文件

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容