使用 EC2 Spot 实例和 Amazon EMR

优化 Amazon EMR 集群的成本和规模

Amazon EMR 提供的托管 Hadoop 框架可以让您快速、轻松、经济高效地在多个动态可扩展的 Amazon EC2 实例中处理大量数据。您还可以运行其他常用的分布式框架(例如 EMR 中的 Apache SparkHBasePrestoFlink),以及与其他 AWS 数据存储服务(例如 Amazon S3 和 Amazon DynamoDB)中的数据进行交互。EMR Notebooks 基于热门的 Jupyter Notebook,可为临时查询和探索性分析提供开发和协作环境。EMR 能够安全可靠地处理各种大数据使用案例,包括日志分析、Web 索引、数据转换 (ETL)、机器学习、财务分析、科学模拟和生物信息。

与按需价格相比,Amazon EC2 Spot 实例以极高的折扣提供可在 AWS 云中使用的空闲计算容量。当 EC2 需要收回容量时,EC2 可能会在两分钟的通知时间内中断 Spot 实例。您可以将 Spot 实例用于各种灵活的容错应用程序,例如分析、容器化工作负载、高性能计算 (HPC)、无状态 Web 服务器、渲染、CI/CD 以及其他测试和开发工作负载。

在本教程中,您将学习如何使用创建集群向导在 Amazon EC2 Spot 实例上启动您的第一个 Amazon EMR 集群。在 Spot 实例上运行 Amazon EMR 可显著降低大数据的成本,显著提高计算容量,并缩短大型数据集的处理时间。

关于本教程
时间 10-20 分钟      
费用 免费
使用案例 计算
产品 Amazon EMR、EC2 Spot 实例
级别 200
上次更新日期 2020 年 2 月 4 日

第 1 步:使用高级选项创建集群

1.1 – 打开浏览器并导航到 Amazon EMR 控制台,或者,可以搜索 EMR,或在控制台着陆页的“分析”部分下找到“Amazon EMR”。如果您已有 AWS 账户,请登录控制台。如果还没有,请新建一个 AWS 账户以开始学习。

已拥有账户? 登录您的账户

1.2 – 在右上角,选择要在其中启动 Amazon EMR 集群的区域

1.3 – 在“Amazon EMR”窗口中单击创建集群

1.4 – 在创建集群窗口中单击转到高级选项

第 2 步:配置集群软件和步骤

2.1 – 在软件配置部分,选择集群所需的软件或保留默认选项以快速开始操作。

2.2 – 选择性地输入任何所需的配置信息以连接 AWS Glue 数据目录以及配置集群软件时要使用的任何配置文件。

将选项使用多个主节点来提高集群可用性保留为禁用状态,因为此选项与实例队列不兼容,我们将在以下步骤中进行配置。

2.3 – 选择性地配置您希望集群在预置后执行的任何步骤,或跳过此步骤以快速演示集群启动过程。

您可以使用 Amazon EMR 步骤将作业提交至 EMR 集群上安装的 Spark 框架。有关更多信息,请参阅《Amazon EMR 管理指南》中的步骤。在控制台和 CLI 中,您可以使用 Spark 应用程序步骤来执行此操作,该步骤会代表您运行 spark-submit 脚本。通过 API,您可以使用 command-runner.jar 调用 spark-submit。

2.4 – 在快速查看您的软件配置后,您可以进行下一步,并配置您的集群硬件。

单击下一步以继续。

第 3 步:配置实例队列

3.1 – 在实例组配置部分下选择实例队列

通过实例队列,我们可以实施实例多元化,在利用 EC2 Spot 实例时,这是一种重要的最佳做法。通过实例多元化,您可以使用多种实例类型,从而确保 Amazon EMR 可以在自动处理中断的同时,分配集群所需的全部容量。

3.2 – 选择要部署您的 Amazon EMR 集群的 VPC一个或多个子网

我们建议您选择多个可用区。虽然您的集群仍将部署在一个可用区内,然而,如果选择多个可用区,Amazon EMR 就可以查看所有选定的可用区,以便将您的集群部署到拥有最高 EC2 Spot 容量的可用区中以运行您的集群。

3.3 – 根据需要配置根设备 EBS 卷大小,或者保留默认值以继续。

3.4 – 向下滚动到任务实例队列部分,然后选择在队列中添加/删除实例类型

通过实例队列,您可以最多为每个队列指定五个实例类型,以便 Amazon EMR 能够从多个可用 EC2 Spot 容量池预置容量。

除非您启动极为短暂的工作负载,否则,我们建议您对主要节点和核心节点使用按需实例。

您可以在此处了解关于典型用例的更多信息,并查看关于将 EC2 Spot 实例与 Amazon EMR 结合使用的建议。

3.5 – 选择要在您的任务节点实例队列中使用的最多五个实例类型。您应考虑在多个实例系列中使用具有相似 vcpu 内存比的实例类型。

您可以使用 Spot 实例顾问来了解关于 EMR 兼容实例的平均成本节省和中断率的更多信息。 

3.6 – 为您的实例队列配置按需单元和 Spot 单元,并选择性地配置每种实例类型的单元。

增加按需单元和 Spot 单元的数量将决定为您的集群预置多大容量。要快速开始并降低这个演练的成本,建议您只部署少量 Spot 单元(例如,8 个),并且不部署按需单元。

默认情况下,每种实例类型的单元数都将与该实例类型的 vCores 数相匹配。您可以根据需要进行配置,以便为不同的实例类型指定更多权重,Amazon EMR 在为您的实例队列实现容量时,会考虑此权重。

您还可以指定将从按需实例或 EC2 Spot 实例实现的单元数。这样,您就可以将多个实例类型和购买选项相结合,以实现实例多元化,以及您的集群所需的容量。

3.7 –(可选)为您的集群配置定义的持续时间预置超时行为。

预置超时允许您定义当 Amazon EMR 无法为您的实例队列预置容量时,您的集群会有怎样的行为。默认行为是终止,不过,您可以选择在出现超时的情况下,让集群尝试预置按需实例,而不是 Spot 实例。

您可以在此处了解关于这些选项的更多信息。

3.8 – 在快速查看您的硬件配置后,您就已经准备就绪,随时可以进行下一步,并配置您的集群的常规集群设置。

单击下一步以继续。

第 4 步:常规集群设置

4.1 – 指定集群名称或接受默认名称(我的集群),以继续。

(可选)您可以配置日志调试终止保护。 

有关日志调试的更多信息,请单击此处

有关终止保护的更多信息,请单击此处

4.2 –(可选)为集群配置任何相关标签。标签对于识别哪个团队拥有您创建的集群或该集群属于哪个环境很有用。

有关标签的更多信息,请单击此处
 

4.3 –(可选)为集群配置任何其他必需的选项,例如 EMRFS 一致视图、自定义 AMI ID 或引导操作。

4.4 – 快速查看常规集群配置后,您可以继续执行下一步并配置集群的安全设置。

单击下一步以继续。 

第 5 步:安全性

5.1 –(可选)为集群配置任何必需的安全配置,包括密钥对、实例角色和配置文件、安全组以及加密。

5.2 – 快速查看集群安全配置后,您可以创建集群。

单击创建集群以启动运行 EC2 Spot 实例的新 Amazon EMR 集群。

恭喜

现在,您已在 EC2 Spot 实例上启动了 Amazon EMR 集群。现在,您已准备好将 Spot 实例集成到 EMR 集群中,并开始优化大数据工作负载的成本和性能。

本教程对您是否有帮助?

谢谢
请告知我们您喜欢什么。
关闭
很抱歉让您失望了
是否存在过时、令人困惑或不准确的内容? 请向我们提供反馈,帮助我们改进本教程。
关闭

使用 EMR 运行 Spark 应用程序

现在您已学习如何将 EC2 Spot 实例与 Amazon EMR 配合使用,您已准备好将实例队列以及您学到的其他最佳实践运用到自己的工作负载中。如果您想继续学习,我们建议您先完成此处的自定进度研讨会。

阅读文档

阅读 Amazon EMR 管理指南,了解 Amazon EMR 的功能和性能。

了解 Amazon EC2 Spot 实例

如果您想了解有关 Amazon EC2 Spot 实例的更多信息,请访问 Amazon EC2 Spot 实例产品页面以浏览文档、视频和博客等。