【问题标题】:In which scenario should one prefer to create Spark cluster on EC2 machines instead of using Elastic Map Reduce?在哪种情况下应该更喜欢在 EC2 机器上创建 Spark 集群而不是使用 Elastic Map Reduce?
【发布时间】:2020-10-23 01:44:38
【问题描述】:

在 EC2 机器上使用 Spark 集群处理实时数据和使用 Elastic map reduce 之间的一些区别是:

  1. 在 Elastic Map Reduce 中,与需要创建和管理集群的 EC2 机器上的 Spark 集群相比,无需管理基础架构和集群。
  2. 在 EC2 上的 Spark 集群的情况下,与作为 PAAS 组件的 Elastic Map Reduce 相比,人们可以更好地控制集群。

我浏览了以下相关链接:

Hadoop on EC2 vs Elastic Map Reduce

我知道,使用 Elastic Map reduce 将带来不必管理基础架构和集群的优势。我想知道的是,什么时候应该更喜欢另一种选择,即在 EC2 机器上创建 Spark 集群而不是使用 Elastic Map Reduce?谢谢。

【问题讨论】:

    标签: apache-spark amazon-emr


    【解决方案1】:

    您和您分享的答案已经总结了两者的优点和缺点。但是我想提几点

    有人在评论您分享的答案时提到(人们实际上有印象)EMR 在 ec2 节点(这是 spark 的底层主/计算节点)之上增加了一些成本,并且只提供集群,这不是案例。

    但是 elastic map reduce 关注的是 elastic 和 scalability 部分,意思是为你的作业提供可扩展性,其中可扩展性不仅仅是集群中的节点数量,而是不同的参数,如

    1. 使用正在运行的作业动态调整集群大小

    2. 减少和优化旋转时间,提供高效的重新提交步骤和选项,如步骤完成时自动终止

    3. 配置、管理和更新时间。就像你有像 release version 这样的东西,它会自动处理 spark/hadoop/other-application 版本,为您提供轻松更新版本的方法,而您必须使用 ec2 手动完成。

    4. 生态系统可用性。 EMR 生态系统正在增长,它不会反映您何时开始,但例如当您的需求增长时,例如当您开始将其他系统流处理与 flink 集成时)然后在启动时选择更容易flink , pig , hive 和 moany 等等,如果您将来需要使用其他东西。

    5. 已经有使用 AWS SDK 实现的库,例如 python 中的 boto3,可帮助您提交步骤、轮询完成等,这在您需要扩展时非常有用。此外,您还可以将 emr 与诸如气流之类的编排框架集成在一起,其中可以感知状态、重新提交、一个命令在管道中旋转集群。

    6. 扩展上一点,例如EMR notebook 为您提供从 Jupiter notebook 提交 Spark 作业并查看结果的快速交互方式,并立即查看作业进度,从而提高您的工作效率。

    7. 根据我的经验,这一点是最重要的,有时,扩展具有更多节点的作业比长时间运行具有少量节点的作业可以节省更多的钱。因为添加节点的成本有时会低于您在 ec2 或小型 emr 集群上花费的标准化小时数。只是为了分享我的经验,我们有一个过去运行 3 天的工作,我们用更大的 EMR 集群来运行它,将它减少到 6-8 小时,它仍然是相同的成本,实际上少了一点。

    【讨论】:

    • 谢谢。您的答案更多地是关于 EMR 相对于其他的优势。相反,我的问题是相反的。它问什么时候应该更喜欢另一种选择,即在 EC2 机器上创建 Spark 集群而不是使用 Elastic Map Reduce?
    • 我认为您在选择两个选项时会考虑优缺点。偏好如何基于不同的东西?
    • 是的,这是正确的,我可以看到您提到的使用 EMR 的优势。我的问题是针对另一种情况。这是在 EC2 上选择 Spark 集群而不是 EMR 的优势。
    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多