Spark 性能優化:重構 RDD 及 RDD 持久化

在寫 Spark 的應用時,應該儘可能避免這兩種狀況:性能

1,幾個功能明明能夠在一個算子操做中完成,爲了代碼清晰,把這個算子拆分紅多個算子進行操做。這種操做每每會增長不少的性能開銷。code

2,出現公用的 RDD 時候不作持久化操做,好比:cdn

RDD複用

RDD2 是會被複用的 RDD,默認狀況下,第一次使用 RDD2 生成 RDD3 時候會走一遍 HDFS -> RDD1 -> RDD2blog

而後用 RDD2 生成 RDD4 的時候,還會走一遍 HDFS -> RDD1 -> RDD2it

這樣就形成了重複計算。io

針對上述的兩種狀況咱們應該這樣作:class

1,可以在一個算子中操做完成的功能不用拆分到多個算子中去操做;lazyload

2,在要複用 RDD 的時候必定要對複用的那個 RDD 作持久化操做。gc

相關文章
相關標籤/搜索