我在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