EC2 与 EMR 上的 Spark 运行

Spark running on EC2 vs EMR

我们是从事与数据科学相关的毕业设计的学生,我们正在使用带有 python (Pyspark) 和 Android 应用程序(用户界面)的 Spark 开发推荐引擎) 我们遇到了很多障碍,其中之一是如何在云上保持 Spark 脚本和 运行 以实现快速处理和实时结果。 关于 EMR,我们只知道它比 EC2 更新,并且已经安装了 Hadoop。 我们仍然很难决定使用哪个以及它们在处理 Spark 时有什么区别。

EMR 提供了一种简单易用的 Hadoop/spark 服务。您只需 select 您想要安装的组件(spark、hadoop)、它们的版本、您想要使用的机器数量以及其他几个选项,然后它就会为您安装所有内容。由于您是学生,我假设您没有使用 Ansible、Puppet 或 Chef 等自动化工具的经验,并且您可能从未需要维护自己的 hadoop 集群。如果是这样,我肯定会建议使用 EMR。作为一个经验丰富的 hadoop/spark 用户,同时我可以告诉你它有其自身的局限性。当我在 6 个月前使用它时,我想使用最新版本的 EMR(如果没记错的话是 4.0),因为它支持最新版本的 Spark,而且我几乎没有头疼地自定义它来安装 Java 8 而不是提供的Java 7. 我相信这是他们支持 Java 8 的早期阶段,他们现在应该已经解决了这个问题。但这就是所有 "all included" 解决方案所缺少的灵活性,特别是如果您是专家用户。

您还可以查看 flintrock 这是一个很好的 python cli,可以在 ec2 上快速无缝地获取 Spark 集群 运行。