1. 使用了有狀態的transformation操作--比如updatestatebykey,或者reducebykeyandwindow操作,被使用了,那麼checkpoint目錄要求是必須提供的,也就是必須開啟checkpoint機制,從而進行週期性的rdd checkpoint
2. 要保證可以從driver失敗中進行恢復--元資料checkpoint需要啟用,來進行這種情況的恢復
要注意,並不是,所有的spark streaming應用程式,都要啟動checkpoint機制,如果即不強制要求從driver失敗中自動進行恢復,又沒有使用有狀態的transformation操作,那麼就不需要啟用checkpoint。事實上,這麼做反而是有助於提高效能的
將rdd checkpoint到可靠的儲存系統上,會耗費很多效能,當rdd被checkpoint時,會導致這些batch的處理時間增加,因此,checkpoint的間隔,需要很好的設定,對於那些間隔很多的batch,比如1秒,如果還要執行checkpoint操作,則會大幅度削減吞吐量,而另外乙個方面,如果checkpoint操作執行的太不頻繁,那就會導致rdd的lineage變長,又會有失敗恢復時間過長的風險。
對於那些喲啊球checkp的有狀態的transformation操作,預設的checkpoint間隔通常是batch間隔的數倍,至少是10秒,使用dstream的checkpoint()方法,可以設定這個dstream的checkpoint的間隔時長,通常來說,將checkpoint間隔設定為視窗操作的滑動間隔的5-10倍是個不錯的選擇
何時啟用單元測試
工作中經常看到很多醜陋的 或者,自己寫的 過一段時間之後自己也覺得很醜陋,促使你不斷的去重構。那麼,這些醜陋的 是什麼時候編寫的呢?它們到底存在多久了呢?大多數情況下,這些醜陋 已經存在有些年頭了。即使是你一手支撐的產品或專案,經過幾個版本的迭代之後,1 2年也過去了。在這些看起來醜陋的 中,很多沒...
InnoDB體系架構(三)Checkpoint技術
checkpoint技術 前篇 innodb體系架構 二 記憶體 從緩衝池 緩衝池的管理 重做日誌緩衝 額外記憶體緩衝這四個點介紹了innodb儲存引擎的記憶體結構,而在將緩衝池的資料重新整理到磁碟的過程中使用到了checkpoint技術,這篇文章我們著重講解一下checkpoint在記憶體中到應用...
索引何時需要 何時不需要 何時失效
總結自 前提 每次查詢都只能使用乙個索引 原因 比起全表掃瞄,分析兩個索引b 表更耗時 何時需要索引?1 所查詢欄位是主鍵 主鍵可以認為是索引 2 和其他表做連線查詢的字段 3 在where裡使用 is null和between等字段 4 不以萬用字元開始的like,如 aa 5 聚集函式max s...