在 YARN 或 EMR 而非 EC2 上部署 Spark 是否有实质性优势?这将主要用于研究和原型(prototype)设计,并且可能使用 Scala。我们不愿意不使用 EC2 主要是因为其他选项涉及额外的基础设施和复杂性,但也许它们也提供了实质性的好处?
我们主要是从 S3 读取数据/向 S3 写入数据。
最佳答案
让我们区分不同的层: 有基础设施层,即 spark 作业应该在哪些(虚拟)机器上运行。潜在的选择包括本地机器集群或从 EC2 租用的虚拟机集群。 尤其是当从 S3 写入大量数据或向 S3 写入大量数据时,EC2 可能是一个不错的选择,因为这两种服务都很好地集成并且通常在相同的数据中心运行(为您提供更好的网络性能)。
第二层是最上面的软件/调度,即连接所有这些机器以调度和运行您的 Spark 作业的软件。 这里的选项包括 Yarn (作为 Hadoop 项目的调度程序), Mesos (通用调度程序也能够处理非 hadoop 工作负载)和 Myriad (本质上是 Mesos 上的 Yarn)。
可以找到 Yarn 和 Mesos 之间很好的比较 here .
EMR 为您提供了轻松启动 Hadoop/YARN 集群的选项。甚至存在引导操作让你 install spark在这样的集群上。
希望这有助于回答您的问题!
关于hadoop - 部署 Spark 的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112253/