spark優化之重構rdd架構及rdd持久化

2021-10-01 20:53:28 字數 364 閱讀 2420

什麼是rdd持久化?

spark最重要的乙個功能,就是把乙個資料集快取在記憶體,磁碟或者分布式檔案系統中。如果持久化了這乙個資料集,那麼對此資料集進行操作的其他操作可以直接復用該資料集,不用重新計算,這會使該操作執行的迅速。

因為要不進行持久化的話,如果多次對乙個rdd執行運算元的話,spark缺省會重算。比如rdd3和rdd4同時基於rdd2做運算,如果不做持久化的話,rdd2會計算兩次。

1.盡量復用rdd

2.然後對該rdd做持久化

3.如果該rdd資料量多大,可以考慮對該rdd序列化,但是在獲取資料的時候,不要忘了反序列化

4.如果想要高可靠性,可以使用memory_only_2,複製乙份副本,並將副本儲存到其他節點上

spark效能調優之重構RDD架構,RDD持久化

當第一次對rdd2執行運算元,獲取rdd3的時候,就會從rdd1開始計算,就是讀取hdfs檔案,然後對rdd1執行運算元,獲取到rdd2,然後再計算,得到rdd3 預設情況下,多次對乙個rdd執行運算元,去獲取不同的rdd 都會對這個rdd以及之前的父rdd,全部重新計算一次 讀取hdfs rdd1...

Spark效能優化 RDD方法優化

對於rdd中某些函式使用注意 1.能不使用groupbykey函式就不使用,除非不得已 redcuebykey combiner groupby map 變數值相加 redcuebykey可以先進行本地聚合操作 2.盡量使用xxpartition函式代替xx函式 xx map foreach zip...

Spark效能優化 RDD持久化

如果程式中,對某乙個rdd,基於它進行了多次transformation或者action操作。那麼就非常有必要對其進行持久化操作,以避免對乙個rdd反覆進行計算。此外,如果要保證在rdd的持久化資料可能丟失的情況下,還要保證高效能,那麼可以對rdd進行checkpoint操作。除了對多次使用的rdd...