我在EMR Spark羣集上運行一些機器學習算法。我很好奇使用哪種實例,以便獲得最佳的性價比增益?Spark - AWS EMR羣集首選哪種實例類型?
對於價格相同的水平,我可以選擇其中:
vCPU ECU Memory(GiB)
m3.xlarge 4 13 15
c4.xlarge 4 16 7.5
r3.xlarge 4 13 30.5
哪種情況下應在EMR星火羣集中使用?
我在EMR Spark羣集上運行一些機器學習算法。我很好奇使用哪種實例,以便獲得最佳的性價比增益?Spark - AWS EMR羣集首選哪種實例類型?
對於價格相同的水平,我可以選擇其中:
vCPU ECU Memory(GiB)
m3.xlarge 4 13 15
c4.xlarge 4 16 7.5
r3.xlarge 4 13 30.5
哪種情況下應在EMR星火羣集中使用?
一般來說,這取決於您的使用情況,需求等...但我可以建議考慮您共享的信息的最低配置。
您似乎試圖在2〜4 GB數據之間的矩陣上訓練ALS
因式分解或SVD
。所以實際上這不是太多的數據。
您至少需要1個主節點和2個節點才能設置和配置小型分佈式羣集。主人不會做任何計算,所以它不需要太多的資源,但當然我會處理任務調度等。
您可以根據需要添加從站(實例)。
1 x master : m3.xlarge - vCPU : 4 , RAM : 15 GB and 2 x 40 GB SSDs
2 x slaves : c3.4xlarge - vCPU : 16, RAM : 30 GB and 2 x 160GB SSDs.
C3和C4 計算優化情況下,它具有高性能處理器和與EC2最低價格/計算性能但建議使用情況相比,R3的分佈式內存緩存和內存分析。但C4將以較低的價格爲您完成這項工作。
性能優化:
每小時的增量亞馬遜EMR費用。這意味着一旦你運行一個集羣,你就需要花費整整一個小時。這一點很重要,因爲如果您要花費整整一個小時的Amazon EMR羣集,以分鐘爲單位改善數據處理時間可能不值得花費您的時間和精力。
不要忘記,添加更多節點以提高性能比花時間優化羣集更便宜。
編輯:你也可以考慮讓Ganglia監視羣集資源:CPU,內存,網絡I/O。這可以幫助您調整EMR羣集。實際上,您沒有任何配置要做。只需按照documentation在創建時將其添加到您的EMR羣集。
一般來說首選實例取決於你正在運行的任務(是內存密集型?是CPU密集型?等等),但Spark是非常內存密集型,我不會少於30GB的大多數工作用機器。
在您的特殊情況下(4Gb數據集),我不確定您爲什麼要使用分佈式計算開始 - 它只會讓您的工作運行緩慢。如果你確定你想讓火花在X線程的本地模式下運行(取決於你有多少核心)
這取決於你的用例,需求等...(相當意見的基礎質量保證) – eliasah
只是舉個例子,如果我要訓練ALS因子分解或SVD的數以百萬計的參賽作品? – shihpeng
你的數據是多大?以千兆字節爲單位? – eliasah