2017-02-28 40 views
-1

我知道spark可以緩存並保持每個分區。如果我想爲每個節點創建一個緩存以避免網絡流量,那有可能嗎?Apache可以爲每個節點啓動緩存嗎?

如果所有客戶ID處理都是有效的,請參考完整性檢查!

回答

0

是的,您可以使用廣播變量緩存每個節點上的數據。廣播變量允許程序員在每臺機器上保存一個只讀變量,而不是隨任務一起發送它的副本。例如,可以使用它們以有效的方式爲每個節點提供一個大型輸入數據集的副本。 Spark還試圖使用高效的廣播算法來分發廣播變量,以降低通信成本。

broadcastVar = sc.broadcast([1, 2, 3]) 

廣播變量的值可以通過調用值方法

SOURCE: SPARK PROGRAMMING GUIDE

+0

是有道理的,但我也希望緩存該節點所需的內容,而不是整個列表。例如,如果我有100個節點,則每個節點根據該節點上的分區數據擁有緩存。 – Jagib

+0

還有緩存和堅持的方法,雖然 –

0

如果您想根據分區,那麼你應該使用緩存功能,它會保存緩存數據進行訪問它在本地被稱爲RDD的輸出,並且將關於該RDD的相關信息發送給主節點。

+0

對不起,我想廣播特定於一臺機器的數據 – Jagib

相關問題