本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EMR 集群的可用区域灵活性
每个 AWS 区域 都有多个被称为可用区的隔离位置。当您启动实例时,可以选择指定您所用 AWS 区域 中的可用区(AZ)。可用区灵活性是指实例在多个可用区之间分布AZs。如果一个实例发生故障,您可以设计您的应用程序,使另一个可用区中的实例可以处理请求。有关可用区的更多信息,请参阅 Amazon EC2 用户指南中的区域和区域文档。
实例灵活性是指使用多种实例类型来满足容量要求。使用实例表现灵活性时,可以跨实例大小、系列和代系使用总容量。与使用单一实例类型的集群相比,更大的灵活性有助于提高查找和分配所需计算容量的能力。
与具有单一实例类型或可用区的集群相比,实例和可用区的灵活性可减少容量不足错误 (ICE) 和 Spot 中断。在了解初始实例系列和大小后,请使用此处介绍的最佳实践来确定需要实现多样化的实例。这种方法最大限度地提高了 Amazon EC2 容量池的可用性,同时将性能和成本差异降至最低。
灵活选择可用区
我们建议您将所有可用区配置为在虚拟私有云 (VPC) 中使用,然后为EMR集群选择这些可用区。集群只能存在于一个可用区中,但是使用 Amazon EMR 实例队列,您可以为不同的可用区选择多个子网。当 Amazon EMR 启动集群时,它会查看这些子网以找到您指定的实例和购买选项。当您为多个子网配置EMR集群时,与单个子网中的集群相比,您的集群可以访问更深的 Amazon EC2 容量池。
如果您必须优先考虑一定数量的可用区以便在您的EMR集群的虚拟私有云 (VPC) 中使用,则可以利用 Amazon 的竞价投放分数功能EC2。使用竞价放置评分,您可以指定竞价型实例的计算需求,然后按照 1 到 10 的等级EC2返回得分排名前十 AWS 区域 的可用区。分数为 10 表示您的竞价型请求成功的可能性很大;分数为 1 表示您的竞价型请求不太可能成功。有关如何使用竞价投放评分的更多信息,请参阅 Amazon EC2 用户指南中的竞价投放分数。
灵活选择实例类型
实例灵活性是指使用多种实例类型来满足容量要求。实例灵活性有利于 Amazon EC2 Spot 和按需实例的使用。借助竞价型实例,实例灵活性允许 Amazon 使用实时容量数据从更深层次的容量池EC2启动实例。此外,实例灵活性还可以预测哪些实例的可用性最高,从而减少中断并降低工作负载的整体成本。使用按需实例,当在更多实例池中配置总容量时,实例灵活性可以减少容量不足错误 (ICE)。
对于实例组集群,您最多可以指定 50 种EC2实例类型。对于采用分配策略的实例队列,您可以为每个主节点组、核心节点组和任务节点组指定最多 30 种EC2实例类型。实例范围越大,实例灵活性的优势就越多。
表现实例灵活性
请考虑以下最佳实践来表现应用程序的实例灵活性。
确定实例系列和大小
Amazon 针对不同的用例EMR支持多种实例类型。Amazon 支持的实例类型 EMR 文档中列出了这些实例类型。每个实例类型都属于一个实例系列,该系列描述了该类型针对哪些应用程序进行了优化。
对于新的工作负载,应该使用通用系列中的实例类型进行基准测试,例如 m5
或 c5
。然后,监控来自 Ganglia 的操作系统和YARN指标 Amazon CloudWatch ,并确定峰值负载时的系统瓶颈。瓶颈包括内存CPU、存储和 I/O 操作。确定瓶颈后,为实例类型选择计算优化、内存优化、存储优化或其他合适的实例系列。有关更多详情,请参阅 Amazon EMR 最佳实践指南中的 “为你的 Spark 工作负载确定合适的基础架构
接下来,确定您的应用程序所需的最小YARN容器或 Spark 执行器。这是适合容器的最小实例大小,也是集群的最小实例大小。使用此指标来确定可进一步实现多元化的实例。实例越小,实例灵活性就越高。
为了获得最大的实例灵活性,您应该利用尽可能多的实例。建议使用硬件规格相似的实例实现多元化。这最大限度地提高了对EC2容量池的访问权限,同时将成本和性能差异降至最低。实现不同大小实例的多元化。为此,首先要确定 AWS Graviton 和上一代实例的优先级。一般来说,对于每种工作负载,应在至少 15 种实例类型之间进行灵活选择。建议从通用型实例、计算优化型实例或内存优化型实例开始。这些实例类型的灵活性最大。
包含其他实例
包含其他实例类型,以便最大限度地实现多元化。首先确定实例大小、Graviton 和代系灵活性的优先级。这允许访问具有相似成本和性能特征的其他EC2容量池。如果您因中断ICE或发现中断而需要进一步的灵活性,请考虑变体和系列灵活性。每种方法都需要根据您的使用案例和要求进行权衡。
-
大小灵活性:首先,使用同系列不同大小的实例实现多元化。尽管同系列的实例成本和性能相同,但可以在每台主机上启动不同数量的容器。例如,如果您需要的最小执行器大小为 2v CPU 和 8Gb 内存,则最小实例大小为。
m5.xlarge
为实现大小灵活性,请将m5.xlarge
、m5.2xlarge
、m5.4xlarge
、m5.8xlarge
、m5.12xlarge
、m5.16xlarge
和m5.24xlarge
包含在内。 -
Graviton 灵活性:除大小外,您还可以通过 Graviton 实例实现多元化。Graviton 实例由 AWS Graviton2 处理器提供支持,可为亚马逊的云工作负载提供最佳的性价比。EC2例如,如果最小实例大小为
m5.xlarge
,则可将m6g.xlarge
、m6g.2xlarge
、m6g.4xlarge
、m6g.8xlarge
和m6g.16xlarge
包含在内,以确保实现 Graviton 的灵活性。 -
代系灵活性:与 Graviton 和大小灵活性类似,上一代系列中的实例具有相同的硬件规格。这使得可访问的 Amazon 资源EC2池总量有所增加,从而实现了类似的成本和绩效状况。为确保代系灵活性,请将
m4.xlarge
、m4.2xlarge
、m4.10xlarge
和m4.16xlarge
包含在内。 -
系列和变体灵活性
-
容量:为了优化容量,建议在实例系列中灵活使用实例。来自不同实例系列的通用实例的实例池更充足,有助于满足容量要求。但是,来自不同系列的实例将具有不同CPU的 v 内存比。如果预期的应用程序容器大小适合不同的实例,会导致利用不足。例如,对于
m5.xlarge
,可将计算优化型实例(如c5
)或内存优化型实例(如r5
)包含在内,以确保实例系列灵活性。 -
成本:为了优化成本,我们建议在不同变体之间灵活使用实例。这些实例的内存和 v CPU 比率与初始实例相同。变体灵活性的劣势在于,这些实例的容量池较小,可能导致额外容量受限或竞价型实例中断增加。
m5.xlarge
例如,使用AMD基于实例的实例 (m5a
)、SSD基于网络的实例 (m5d
) 或网络优化的实例 (m5n
),以获得变体灵活性。
-