我已經開始學習Spark並且目前正在運行WordCount實驗(統計文本文件中每個單詞出現的次數)。 該文件被放置在網絡掛載的共享文件系統中。 我有一個集羣1主和5執行者(每個都有:處理器AMD Opteron 1.7 Ghz,24核心,48GB RAM,250GB存儲)。Apache Spark性能
我已經離開了星火的默認配置爲
我已經注意到了,我第一次運行該程序,我得到一個較長的執行時間的時刻(如spark.executor.memory =512米),這降低在第二次,第三次運行。 例如,對於一個40GB的文件的執行時間爲:
- 第一次執行:419.769396小號
- 第二次執行:176.242206小號
- 第三個執行:134.411345小號
- 四執行:126.052158小號
- 第五次執行:126.287600 s
我正在運行它:
> ./spark-submit --class com.spark.example.WordCount --master spark://master:7077 wordCountOriginal.jar /data/input40GB
WordCount的代碼與Spark提供的示例完全相同。
我不明白爲什麼第一次執行和下一次執行之間會有如此大的差異。我認爲緩存是答案,但從我讀的Spark緩存中執行結果中的中間結果,但在這裏有不同的執行。
謝謝!
我認爲這種差異可能更多地沿着將可重用數據對象進行池化或在活動實例的內存中保持加載類的方式。 (免責聲明:我沒有與Spark合作過)。 –