阿帕奇星火DAGScheduler缺少父母當運行我在Apache星火迭代程序中,我偶爾會得到消息:爲舞臺
INFO scheduler.DAGScheduler: Missing parents for Stage 4443: List(Stage 4441, Stage 4442)
我收集這意味着它需要計算父RDD
- 但我不是100%確定。我不只是得到其中的一個,我最終得到的是100個,如果不是數千個,它會使我的程序完全放慢速度,而另一個迭代不會在10-15分鐘內完成(它們通常需要4-10秒) 。
我cache
主RDD
在每次迭代,使用StorageLevel.MEMORY_AND_DISK_SER
。下一次迭代使用這個RDD
。因此,RDD
的譜系變得非常大,因此需要緩存。但是,如果我緩存(並泄漏到磁盤),父母如何丟失?
好的,謝謝!但爲什麼它會減慢程序呢? – monster
我自己有長譜系迭代程序的經驗是每10-15次迭代就需要檢查點。檢查點將使該迭代長達1.5--2倍(您正在將文件寫入SPARK_CHECKPOINT_DIR中的永久性存儲),但會加快接下來的幾次迭代。 我在迭代程序中遇到的另一個問題是最初錯過了一個RDD來緩存,這樣這個RDD的重用會在後面的RDD的譜系圖中觸發一個遞歸,導致後面的迭代永遠不會結束。如果你在這種血統的某個地方甚至有1個RDD,它可能會發生。 – modulus0