本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EMR 与 EC2 置放群组的集成
在 Amazon EC2 上启动 Amazon EMR 多主节点集群时,您可以选择使用置放群组策略,指定您希望部署的主节点实例,以防止硬件故障。
从 Amazon EMR 版本 5.23.0 开始支持置放群组策略,该策略可作为多主节点集群选项。目前,置放群组策略仅支持主节点类型,并会将 SPREAD 策略应用于这些主节点。SPREAD 策略将一小组实例放置在单独的基础硬件上,以防止发生硬件故障时出现多个主节点丢失的问题。请注意:如果没有足够的唯一硬件来满足请求,实例启动请求可能会失败。有关 EC2 置放策略和限制的更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的置放群组。
Amazon EC2 的初始限制是,每个 Amazon 区域可以启动 500 个支持置放群组策略的集群。请联系 Amazon 支持部门,请求增加允许的置放群组数量。通过跟踪 Amazon EMR 与 Amazon EMR 置放组策略关联的键值对,可以识别 Amazon EMR 创建的 EC2 置放组 EMR。有关 EC2 集群实例类型的更多信息,请参阅查看 Amazon EC2 中的集群实例。
将置放群组托管策略附加到 Amazon EMRrole
置放群组策略需要一个名为 AmazonElasticMapReducePlacementGroupPolicy 的托管式策略,以允许 Amazon EMR 在 Amazon EC2 上创建、删除和描述置放群组。您必须将 AmazonElasticMapReducePlacementGroupPolicy 附加到 Amazon EMR 的服务角色,然后才能启动具有多个主节点的 Amazon EMR 集群。
您还可以将 AmazonEMRServicePolicy_v2 托管式策略 附加到 Amazon EMR 服务角色,而不使用置放群组托管式策略。AmazonEMRServicePolicy_v2 会与 AmazonElasticMapReducePlacementGroupPolicy 一样授予访问 Amazon EC2 上置放群组的相同权限。有关更多信息,请参阅 Amazon EMR 的服务角色(EMR 角色)。
AmazonElasticMapReducePlacementGroupPolicy 托管式策略是由 Amazon EMR 创建和管理的以下 JSON 文本。
注意
由于AmazonElasticMapReducePlacementGroupPolicy托管策略是自动更新的,因此此处显示的策略可能是 out-of-date。使用 Amazon 管理控制台查看当前策略。
使用置放群组策略启动具有多个主节点的 Amazon EMR 集群
要使用置放群组策略启动具有多个主节点的 Amazon EMR 集群,请将置放群组托管策略 AmazonElasticMapReducePlacementGroupPolicy 附加到 Amazon EMR 角色。有关更多信息,请参阅 将置放群组托管策略附加到 Amazon EMRrole。
每次使用此角色启动具有多个主节点的 Amazon EMR 集群时,Amazon EMR 都会尝试启动将 SPREAD 策略应用于其主节点的集群。如果您使用的角色未将置放群组托管式策略 AmazonElasticMapReducePlacementGroupPolicy 附加到自身,Amazon EMR 会尝试在没有置放群组策略的情况下启动具有多个主节点的 Amazon EMR 集群。
如果您使用 Amazon EMRAPI 或 CLI 启动具有多个主节点且placement-group-configs参数为的 Amazon EMR 集群,则只有在亚马逊附加了置放群组托管策略的情况下,A EMRrole mazon EMR 才会启动该集群。AmazonElasticMapReducePlacementGroupPolicy如果 Amazon EMRrole 未附加该策略,则具有多个主节点的 Amazon EMR 集群将启动失败。
在未附加置放群组策略的情况下启动多主节点集群
要让多主节点集群在未附加置放群组策略的情况下启动主节点,您需要执行以下操作之一:
-
AmazonElasticMapReducePlacementGroupPolicy从 Amazon 中移除置放群组托管策略 EMRrole,或者 -
使用 Amazon EMR API 或 CLI 通过
placement-group-configs参数启动多主节点集群,选择NONE作为置放群组策略。
检查附加多主节点集群的置放群组策略配置
您可以使用 Amazon EMR 描述集群 API,来查看附加多主节点集群的置放群组策略配置。
例
aws emr describe-cluster --cluster-id "j-xxxxx" { "Cluster":{ "Id":"j-xxxxx", ... ... "PlacementGroups":[ { "InstanceRole":"MASTER", "PlacementStrategy":"SPREAD" } ] } }