我在獨立模式下運行Spark 2.0,並且我是唯一一個在羣集中提交作業的人。Spark如何驅逐緩存分區?
假設我有一個帶有100個分區的RDD,並且總共只有10個分區適合內存。
我們還假設分配的執行內存是足夠的並且不會干涉存儲內存。
假設我迭代該RDD中的數據。
rdd.persist() // MEMORY_ONLY
for (_ <- 0 until 10) {
rdd.map(...).reduce(...)
}
rdd.unpersist()
對於每次迭代,持續存在的前10個分區總是在內存中,直到rdd.unpersist()
?
謝謝。根據我的理解和您所包含的JIRA鏈接,LRU主要涉及不同的RDD被緩存。在這裏,我想知道單個RDD的數據分區不能完全包含在內存中的情況。 – Russell
根據我的理解,如果您有單個RDD或多個RDD,則相同的技術適用於這些方面。 –
JIRA鏈接中的評論困擾了我。 「默認的RDD驅逐策略是LRU(具有不會替換屬於相同RDD的另一個塊(如當前創建分區)的附加規則)」。我多挖了一點,我相信分區不會被驅逐到相同RDD中的其他分區。感謝指針! – Russell