在YARN或EMR而不是EC2上部署Spark有很大的优势吗?这将主要用于研究和原型设计,并且可能使用Scala。我们不愿意不使用EC2主要源于额外的基础设施和其他选项涉及的复杂性,但也许它们也提供了实质性的好处?
我们主要是从/向S3读取/写入数据。
答案 0 :(得分:4)
让我们区分不同的层: 有基础设施层,即火花作业应该在哪些(虚拟)机器上运行。可能的选项包括本地机器群集或从 EC2 租用的虚拟机群集。 特别是在从S3向/向S3写入大量数据时,EC2可能是一个不错的选择,因为两种服务都集成良好,通常在相同的数据中心运行(为您提供更好的网络性能)。
然后第二层是软件/调度,即哪个软件连接所有这些机器以安排和运行你的火花工作。 此处的选项包括 Yarn (作为Hadoop项目的调度程序), Mesos (通用调度程序也可以处理非hadoop工作量)和 Myriad (基本上是Mesos上的Yarn)。
可以找到Yarn和Mesos之间的良好比较here。
EMR为您提供了轻松启动Hadoop / YARN群集的选项。甚至存在让你install spark在这些集群上的引导操作。
希望这有助于回答你的问题!
答案 1 :(得分:1)
另一件事是当你说YARN时...我认为你误解了这些概念:EC2,EMR和YARN。我自己解释一下:YARN(又一个资源谈判者)是SPARK在大型机器集群上运行的两种选择之一。您可以使用Spark on Mesos或Spark 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