rdd.cache
預設呼叫persisi,之快取記憶體
def cache(): this.type = persist()
rdd.persist()
def persist(): this.type = persist(storagelevel.memory_only)
rdd.unpersist(true)
手動釋放快取rdd占用的記憶體、磁碟儲存資源
rdd.checkpoint:容錯
checkpoint會把rdd序列化到checkpoint目錄中,並丟棄rdd之前的依賴關係
實現:
sc.setcheckpointdir("....") // 檢查點磁碟目錄,一般是hdfs
rdd.cache // 先快取再checkpoint:如果rdd有依賴之前的rdd,checkpoint的時候會從頭計算,浪費資源,做了重複的工作
rdd.checkpoint // 設定檢查點
rdd.collect // action操作之後才真正的開始計算rdd並儲存到檢查點
應用場景:一般對於做了大量迭代計算的重要階段做checkpoint,使這個點的rdd成為頂層父rdd,恢復時只需要恢復該rdd,不用重新計算
比如迭代1000次,第998從失敗了,正好再997次checkpoint了,此時恢復會很快。
sparkRDD的持久化問題
spark的rdd與其他dataset都可以做持久化,關於持久化的等級也可根據自身需求選擇關於持久化等級可檢視官網 這裡記錄一次關於持久化的直觀感受 在專案中需要對一批資料做三次校驗,1.通用校驗,2.欄位名稱合法性校驗,3.欄位值得型別校驗。由於需要對通過每一次校驗的結果做統計來寫報告所以偽 如下...
八 MQ容錯處理方式(MQ訊息持久化)
上面所說,消費者掛了,可以通過應答方式進行再次處理。如果是mq掛了呢?那麼全部訊息就丟失了?下面是mq掛了,保證訊息不丟失處理。宣告佇列 中,設定訊息持久化 boolean durable false 持久化宣告 宣告佇列 channel.queuedeclare queue name,durabl...
BPEL例項執行 2 持久化配置
activebpel引擎連資料庫oracle 10g,資料庫持久化配置。activebpel的引擎中的doc裡有個叫persistent set的檔案,現整理如下。serlvet容器配置 tomcat5.x 我使用的是tomcat5.0.28版本。http tomcat.apache.org 安裝t...