2016-06-27 20 views
3

星火的時間軸包含:如何獲得的火花從HDFS中讀取數據的時間成本

  1. 調度延遲
  2. 任務反序列化時
  3. 隨機讀取時間
  4. 執行人計算時間
  5. 洗牌寫入時間
  6. 結果序列化時間
  7. 獲取Res ult時間

似乎從源讀取數據(如hdfs)的時間成本包含在Executor Computing Time中。但我不確定。

如果是在Executor Computing Time,我怎樣才能得到它,而不包括計算的時間成本。

謝謝。

+0

我不確定,但我不認爲數據已完全加載,然後處理,但通常從磁盤流式傳輸。因此,在兩個階段之間不應有任何分離,因爲它在讀取時處理。 – C4stor

+0

那麼,從計算延遲中讀取數據時,如何區分網絡延遲? – secfree

+1

如果你想這樣做,我猜你可以強制加載數據,在讀取之後通過.persist()調用,然後在另一個階段開始處理。這應該允許您使用內存數據,並評估這兩個部分。儘管如此,它的總時間不會與之前的配置相同。 – C4stor

回答

0

很難正確區分讀取操作需要多長時間,因爲正在讀取數據時會對數據進行處理。

一個簡單的最佳賭注就是應用一個微不足道的操作(比如count),這個操作的開銷很小。如果你的文件很大,讀取將會大大地支配這個微不足道的操作,特別是如果它是一個可以在節點之間不洗牌數據的情況下進行計數(除了單值結果之外)。