Spark - AWS EMR集群首选哪种实例类型?

shi*_*eng 18 amazon-ec2 emr apache-spark

我在EMR Spark集群上运行一些机器学习算法.我很想知道使用哪种实例,这样我可以获得最佳的成本/性能提升?

对于相同的价格水平,我可以选择:

          vCPU  ECU  Memory(GiB)
m3.xlarge  4     13     15     
c4.xlarge  4     16      7.5
r3.xlarge  4     13     30.5
Run Code Online (Sandbox Code Playgroud)

在EMR Spark集群中应该使用哪种实例?

eli*_*sah 18

一般来说,这取决于您的使用案例,需求等......但考虑到您共享的信息,我可以建议最低配置.

您似乎正在尝试在2到4 GB的数据之间训练ALS分解或SVD矩阵.实际上,这并不是太多的数据.

您将需要至少1个主节点和2个节点来设置和配置小型分布式群集.主人不会做任何计算,所以它不需要太多资源,但当然我会处理任务调度等.

您可以根据需要添加从属(实例).

  • 1 x master:m3.xlarge m5.xlarge - vCPU:4,RAM:16 GB,带EBS存储.
  • 2个从站:c3.4xlarge c5.xlarge - vCPU:16,RAM:32 GB,带EBS存储.

编辑:正如评论中所提到的,第5代实例现在可用于此线程中提到的每种实例类型:R5,M5和C5.通常,最新一代实例类型比旧版实例类型更便宜,性能更高.

C3,C4和C5是具有高性能处理器的计算优化实例,与R3,R4或R5相比,EC2中的价格/计算性能最低,尽管推荐的用例是分布式内存缓存和内存分析.但是C5会以更低的价格为您完成这项工作.

性能优化:

  • 亚马逊EMR按小时增量收费.这意味着一旦您运行群集,您就需要支付整个小时的费用.这一点很重要,因为如果您要支付整整一小时的Amazon EMR集群,那么几分钟内改善数据处理时间可能不值得您花费时间和精力.

  • 不要忘记,添加更多节点以提高性能比花费时间优化群集更便宜.

参考: 亚马逊EMR最佳实践 - Parviz Deyhim.

编辑:您还可以考虑启用Ganglia来监控您的群集资源:CPU,RAM,网络I/O. 这有助于您调整EMR集群.实际上,您没有任何配置要做.只需按照文档将其添加到创建时的EMR群集中.

  • 我想向 2018 年看到这一情况的任何人指出——第五代实例现在可用于本线程中提到的每种实例类型:R5、M5 和 C5。一般来说,最新一代实例类型比旧实例类型更便宜且性能更高。 (2认同)