部署Spark的最佳方式是什么?

时间:2015-05-07 21:47:42

标签: hadoop amazon-ec2 apache-spark yarn amazon-emr

在YARN或EMR而不是EC2上部署Spark有很大的优势吗?这将主要用于研究和原型设计,并且可能使用Scala。我们不愿意不使用EC2主要源于额外的基础设施和其他选项涉及的复杂性,但也许它们也提供了实质性的好处?

我们主要是从/向S3读取/写入数据。

3 个答案:

答案 0 :(得分:4)

让我们区分不同的层: 有基础设施层,即火花作业应该在哪些(虚拟)机器上运行。可能的选项包括本地机器群集或从 EC2 租用的虚拟机群集。 特别是在从S3向/向S3写入大量数据时,EC2可能是一个不错的选择,因为两种服务都集成良好,通常在相同的数据中心运行(为您提供更好的网络性能)。

然后第二层是软件/调度,即哪个软件连接所有这些机器以安排和运行你的火花工作。 此处的选项包括 Yarn (作为Hadoop项目的调度程序), Mesos (通用调度程序也可以处理非hadoop工作量)和 Myriad (基本上是Mesos上的Yarn)。

可以找到Yarn和Mesos之间的良好比较here

EMR为您提供了轻松启动Hadoop / YARN群集的选项。甚至存在让你install spark在这些集群上的引导操作。

希望这有助于回答你的问题!

答案 1 :(得分:1)

EMR是"相同"那个EC2但安装了Hadoop。如果您不需要Hive / Pig或Hadoop本身,那么我认为您将无需支付EMR的额外费用。结论:如果您只需要Spark更好地使用EC2,那么您可以使用SPARK获得一个群集,只需点击几下#34;你只需要使用:spark-ec2脚本来获取它:

另一件事是当你说YARN时...我认为你误解了这些概念:EC2,EMR和YARN。我自己解释一下:YARN(又一个资源谈判者)是SPARK在大型机器集群上运行的两种选择之一。您可以使用Spark on MesosSpark on Yarn

请参阅此处:http://radar.oreilly.com/2015/02/a-tale-of-two-clusters-mesos-and-yarn.html

答案 2 :(得分:0)

在我们在spot实例上生成的mesos群集上使用Spark的地方,这使得它非常昂贵。

此外,如果您使用Spark访问S3,您可能需要使用DirectOutputCommitter来删除写入Hadoop时所需的一些eoverhead