我是Spark的新手。我嘗試在1個工作節點上運行一個簡單的Amazon EMR應用程序(Python pi近似值爲here),第二階段使用2個工作節點(m4.large)運行。每次完成任務耗費的時間大約爲25秒。天真地說,我期待有兩個節點的1.5倍增益。我天真嗎?這是正常的嗎?Spark執行時間與AWS EMR上的節點數
1
A
回答
1
讓我們做一個簡單的實驗:
from functools import reduce
from operator import add
import timeit
# Taken from the linked example.
n = 100000
def f(_):
x = random() * 2 - 1
y = random() * 2 - 1
return 1 if x ** 2 + y ** 2 < 1 else 0
%timeit -n 100 reduce(add, (f(x) for x in range(n)))
結果我得到使用很老的硬件:
100 loops, best of 3: 132 ms per loop
這應該是一個預計處理時間爲一個分區和價值,我們得到的是相當的到任務調度時間。
結論?您測量的是集羣和應用程序延遲(上下文初始化,調度延遲,上下文拆除)而非處理時間。
1
這個問題是相當廣泛的,因此我的答案將會很寬泛,但你會得到的圖片。
更多的機器並不意味着總是更快的計算並且特別不在Pi逼近上。
您不應該忘記最終的瓶頸:網絡I/O,數據偏斜,昂貴的轉換,分區等等。
這就是爲什麼應該進行基準測試和監測。你也可以計算Spark上下文需要設置和拆卸的時間,這可能是你計算時間的一個重要部分。
再加上一個m4.large是一個相當強大的機器用於此目的。如果您在EMR羣集上設置神經節,您會注意到,spark幾乎不會使用其資源,這會導致您在啓動EMR上的Spark應用程序時考慮進行調整。
現在回答你的問題。 是的,該行爲對於您正在啓動的應用程序是正常的。
這是我前段時間寫的關於 improving latency on a single node apache spark cluster的文章,可能會爲您提供有關此主題的更多信息。
相關問題
- 1. AWS EMR Spark 1.0
- 2. 在AWS EMR上運行Spark,如何在主節點上運行驅動程序?
- 3. Spark AWS emr檢查點位置
- 4. 覆蓋AWS EMR主節點上的默認aws-sdk jar版本
- 5. AWS EMR Spark步驟參數錯誤
- 6. AWS EMR上的Spark 2.1.0的AWS-SDK對齊錯誤?
- 7. 僅具有主節點和任務節點的AWS EMR
- 8. 通過傳遞證書在AWS EMR上運行spark
- 9. Spark工作執行時間
- 10. 如何執行AWS emr和redshift腳本?
- 11. AWS EMR無主機:hdfs:/// var/log/spark/apps
- 12. AWS EMR Spark Python日誌記錄
- 13. EMR上的Spark + Cassandra LinkageError
- 14. 在長時間運行的EMR集羣上設置AWS數據管道
- 15. 在執行AWS EMR中的自定義WordCount jar時出錯
- 16. Amazon EMR:在數據節點上配置存儲
- 17. Spark在EMR上登錄?
- 18. Spark/Hadoop無法在AWS EMR上找到文件
- 19. AWS Data Pipeline配置EMR集羣運行Spark
- 20. 處理AWS EMR集羣中任務節點的現場終止
- 21. 如何使用EMR使從屬節點適用於Spark羣集?
- 22. 從EMR集羣主節點使用spark-submission外部
- 23. 自動縮放AWS EMR集羣節點0
- 24. AWS節點JS與請求
- 25. AWS Lambda內存vs執行時間
- 26. 如何測量Spark上查詢的執行時間
- 27. AWS EMR Auto Scaling
- 28. Amazon EMR集羣上的spark-csv錯誤
- 29. 節點js,函數執行
- 30. 節點API架構上AWS
謝謝埃利亞斯。我明白數據的局部性,數據格式和任務的複雜性是需要考慮的重要問題,但我認爲針對這些問題(例如:網絡I/O在哪裏),pi逼近的具體問題並不是非常困難。您如何知道Spark花費在設置和拆卸上的時間?神經節顯示這種信息嗎? – Patrick
我已經提到了網絡瓶頸問題,但它不應該是你的情況,我相信你需要知道它。你可以測量連接到ssh的設置和連接,編寫一個簡單的應用程序來實現這一點,你可能會有一個關於它需要多少的經驗概念。那裏沒有魔法。 – eliasah