例如從kafka消費數(shù)據(jù),使用sparkstream計算Wordcount,要求保證準確性,實時性,可用性,你要怎么實現(xiàn)?
如果計算時突然宕機,怎么保證消費kafka數(shù)據(jù)不丟失,不重復(fù)?
使用Kafka對接SparkStreaming計算,那么要保證數(shù)據(jù)不丟失,和不重復(fù)的話,要使用直連方式,并且保證一次性語義,手動管理Offset即可,那么在實現(xiàn)過程中,Offset一定不能丟,所以要手動管理,然后把它保存到其他存儲位置即可,每次能拿到保存好的Offset就OK,同時如果Kafka突然宕機或者SparkStreaming宕機都不用擔心,只要設(shè)置好一次性語義保存冪等數(shù)據(jù)不會丟,而且Offset在這次任務(wù)失敗時候不會被提交,所以也不會更新,下次再次消費即可。