2015-10-07 58 views
8

當我使用spark運行作業時,我得到以下日誌?火花日誌中的階段意味着什麼?

[Stage 0:> (0 + 32)/32]

這裏32對應於我要求RDD的分區數。

但是我不明白爲什麼會出現多個階段以及每個階段究竟發生了什麼。

每個階段顯然需要很多時間。是否有可能在更少的階段完成?

+0

看看這個演示文稿,它很好的解釋了https://spark-summit.org/2014/talk/a-deeper-understanding-of-spark-internals – ccheneson

回答

4

Spark中的一個階段表示在本地完成的DAG計算的一部分。一個階段中斷了需要混洗數據的操作,這就是爲什麼您會在Spark UI中看到該操作命名的原因。如果您使用的Spark 1.4+,那麼你甚至可以在DAG可視部段這個可視化的UI:

enter image description here

注意,分裂發生在reduceByKey,這需要一個洗牌完成全部執行。