checkpoint:
checkpoint都放啥子?
- Metadata checkpointing : 保存流計算的定義信息到容錯存儲系統(tǒng)如 HDFS 中。這用來恢復應用程序中運行 worker 的節(jié)點的故障。
元數(shù)據(jù)包括 :
Configuration : 創(chuàng)建 Spark Streaming 應用程序的配置信息。
DStream operations : 定義 Streaming 應用程序的操作集合。
Incomplete batches : 操作存在隊列中的未完成的批。 - Data checkpointing : 保存生成的 RDD 到可靠的存儲系統(tǒng)中,這在有狀態(tài) transformation(如結合跨多個批次的數(shù)據(jù))中是必須的。在這樣一個 transformation 中,生成的 RDD 依賴于之前批的 RDD,隨著時間的推移,這個依賴鏈的長度會持續(xù)增長。在恢復的過程中,為了避免這種無限增長。有狀態(tài)的 transformation 的中間 RDD 將會定時地存儲到可靠存儲系統(tǒng)中,以截斷這個依賴鏈。
checkpoint啥子時候寫
checkpoint啥子時候讀?
時間:checkpoint是在action動作計算結束之后執(zhí)行。
在Spark Streaming整個架構體系里面,數(shù)據(jù)接收其實最為關鍵的一個流程,在數(shù)據(jù)接收完之后,后面的數(shù)據(jù)處理上面就是復用Spark Core的數(shù)據(jù)處理架構
spark streaming with kafka
- recivers
spark partition與kafka partition無關。
spark 獲取revicer及對應prefreLocations。
獲取可以使用的executor,makeReciveRDD,編寫rdd compute方法(startReceiverFunc),submit rdd - dirct
Spark Streaming會創(chuàng)建與 Kafka partitions 相同數(shù)量的 paritions 的 RDD,RDD 的 partition與 Kafka 的 partition 一一對應。
保證事務性。
spark streaming 保證事物一致性
確認能否允許少量數(shù)據(jù)不一致,不能的話,可以通過
1、可以利用事務性數(shù)據(jù)庫來保證事務一致性,如mysql/redis
2、自己設置數(shù)據(jù)處理+checkpoint為原子性操作實現(xiàn)