2015-05-25 82 views
13

我在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星火羣集中使用?

+0

這取決於你的用例,需求等...(相當意見的基礎質量保證) – eliasah

+0

只是舉個例子,如果我要訓練ALS因子分解或SVD的數以百萬計的參賽作品? – shihpeng

+0

你的數據是多大?以千兆字節爲單位? – eliasah

回答

12

一般來說,這取決於您的使用情況,需求等...但我可以建議考慮您共享的信息的最低配置。

您似乎試圖在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羣集,以分鐘爲單位改善數據處理時間可能不值得花費您的時間和精力。

  • 不要忘記,添加更多節點以提高性能比花時間優化羣集更便宜。

參考:Amazon EMR Best Practices - Parviz Deyhim

編輯:你也可以考慮讓Ganglia監視羣集資源:CPU,內存,網絡I/O。這可以幫助您調整EMR羣集。實際上,您沒有任何配置要做。只需按照documentation在創建時將其添加到您的EMR羣集。

2

一般來說首選實例取決於你正在運行的任務(是內存密集型?是CPU密集型?等等),但Spark是非常內存密集型,我不會少於30GB的大多數工作用機器。

在您的特殊情況下(4Gb數據集),我不確定您爲什麼要使用分佈式計算開始 - 它只會讓您的工作運行緩慢。如果你確定你想讓火花在X線程的本地模式下運行(取決於你有多少核心)

+0

我同意你的觀點,爲什麼我說最低限度的conf。 :) – eliasah

+0

最低配置是不使用電子病歷 - 只是得到一個實例(即使是現貨實例)下載電火花,並在本地模式下運行 –

+0

EMR的最低配置,問題是關於電子病歷上的Spark我想。祝你今天愉快! – eliasah