2017-04-05 72 views
0

如果我們正在運行火花任務,讓我們說火花的邏輯迴歸,爲什麼Spark的第一次迭代速度很慢並且迭代更快?

第一次迭代火花將花費大約80秒,並且進一步它將花費1秒這是爲什麼?

這裏火花的內部行爲是什麼?我知道火花存儲在內存中的數據這就是爲什麼計算速度更快,但詳細的解釋會很好!

+0

你在哪裏運行我們的作業集羣或獨立?也請提供影響 – FaigB

+0

的代碼片段,也許80年代包括初始化,集羣部署等。 – Wang

+0

@FaigB取任何火花代碼。我只是在問一個理論問題。 –

回答

2

幾件事情:

  1. 第一次迭代中可以包含發送代碼到工人等
  2. 大多數的ML算法,緩存在內存中輸入數據。緩存是懶惰的,所以在第一次迭代整個數據集緩存 - 移動到RAM - 在接下來的迭代算法使用緩存的數據 - 這是更快
  3. 星火基礎設施必須進行初始化 - 上下文的部分,執行的JVM
+0

不要忘記初始化所有Spark基礎結構(上下文等的惰性部分,執行器JVM等)。 – zero323

+0

@ zero323謝謝,我已經添加了:) –

+0

:)我認爲這實際上是最大的貢獻者。我記得前一段時間發佈了一些測試,「無操作」工作表現出類似的延遲。 – zero323

相關問題