亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風向標——亞洲寵物展覽會深度解析
1879
2022-05-28
一、?針對單個Topic過期時間的配置未設(shè)置成功
查看Kafka中某個Topic過期時間配置是否成功的方式如下:
1)?Kafka客戶端執(zhí)行kafka-topics.sh --describe --zookeeper ZK業(yè)務(wù)IP:24002/kafka --topic TopicName
如果topic的describe信息中有“retention.ms”信息,則設(shè)置成功。
2)651X版本還可以通過FusionInsight Manager頁面“集群->Kafka->KafkaTopic監(jiān)控”中Topic配置查看
二、客戶端版本低導(dǎo)致設(shè)置未生效
確認執(zhí)行配置命令的客戶端是否與Kafka服務(wù)端版本一致,如果不一致,下載最新的客戶端重新執(zhí)行修改配置命令。
三、節(jié)點異常或節(jié)點磁盤下線或數(shù)據(jù)目錄異常
1.?????節(jié)點異常
FusionInsight Manager頁面“集群->Kafka->實例”查看各個實例狀態(tài)是否是良好。
2.?????磁盤下線
FusionInsight Manager有沒有“數(shù)據(jù)目錄狀態(tài)異常”的告警。Topic副本所在節(jié)點server.log日志中搜“offline”關(guān)鍵字和“checkpoint file”關(guān)鍵字查看磁盤是否下線或因checkpoint文件問題沒有上線。
3.?????數(shù)據(jù)目錄權(quán)限異常
節(jié)點上Kafka數(shù)據(jù)目錄(一般是“/srv/BigData/kafka/dataX/kafka-logs”)目錄權(quán)限是否正常。
四、?BufferOverflowException
Kafka server.log日志中刪除時出現(xiàn)“Uncaught exception in scheduled task kafka-log-retention”和“java.nio.BufferOverflowException”關(guān)鍵字。
解決辦法是升級到6518及之后版本。
五、Kafka數(shù)據(jù)Timestamp異常
1)?把未過期刪除的分區(qū)中最早的segment的.log、.timeindex和.index文件拷貝到Kafka客戶端所在節(jié)點,例如“/opt/client/test”路徑
2)?執(zhí)行kafka-run-class.sh kafka.tools.DumpLogSegments --files .timeindex文件路徑 --print-data-log
如果最后一條timestamp時間戳值與當前值的差值小于設(shè)置的retention.ms的值,Kafka不會刪除此segment及之后所有segment的數(shù)據(jù)。
例如,執(zhí)行結(jié)果如下所示:
最后一條timestamp時間遠超過當前時間,此分區(qū)此segment及之后的數(shù)據(jù)Kafka不會基于時間自動刪除。如果想要刪除可以手動停節(jié)點刪除,也可以通過修改基于日志大小來刪除。
Kafka基于時間刪除時,查找過期的日志分段文件不是根據(jù)最近修改時間(因為它可以被有意或者無意修改),而是根據(jù)日志分段中的最大時間戳largestTimestamp來計算的。要獲取日志分段中的最大時間戳,首先查詢該日志分段對應(yīng)的時間戳索引文件,查找時間戳索引文件中最后一條索引項,若最后一條索引項的時間戳值大于0,則取其值,否則設(shè)置為最近修改時間。刪除時先從跳表中移除待刪除的日志分段,然后加上delete后綴,最后交由delete-file延時任務(wù)來刪除這些文件,延時任務(wù)通過file.delete.delay.ms配置,默認60000(1分鐘)。日志刪除任務(wù)周測檢配置是Log.retention.check.interval.ms,默認300000(5分鐘)。
Kafka
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。