

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Integración de Amazon EMR con grupos de ubicación de EC2
<a name="emr-plan-ha-placementgroup"></a>

Al lanzar un clúster de Amazon EMR con varios nodos principales en Amazon EC2, tiene la opción de utilizar estrategias de grupos de ubicación para especificar cómo desea que se implementen las instancias de nodos principales para protegerlas contra los errores de hardware.

Las estrategias de grupos de ubicación se admiten a partir de la versión 5.23.0 de Amazon EMR como opción para clústeres con varios nodos principales. Actualmente, la estrategia de grupo de ubicación solo admite los tipos de nodos principales y la estrategia `SPREAD` se aplica a esos nodos. La estrategia `SPREAD` coloca un pequeño grupo de instancias en un hardware subyacente independiente para evitar la pérdida de varios nodos principales en caso de que se produzca un error de hardware. Tenga en cuenta que una solicitud de lanzamiento de instancia podría presentar errores si no hay suficiente hardware único para cumplir con la solicitud. Para más información sobre las estrategias y limitaciones de ubicación de EC2, consulte [Grupos de ubicación](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) en la *Guía del usuario de EC2 para instancias de Linux*.

Amazon EC2 establece un límite inicial de 500 clústeres habilitados para la estrategia de grupos de colocación que se pueden lanzar por región. AWS Póngase en contacto con el servicio de AWS asistencia para solicitar un aumento en el número de grupos de colocación permitidos. Puede identificar los grupos de ubicación de EC2 que Amazon EMR crea mediante el seguimiento del par de clave-valor que Amazon EMR asocia a la estrategia de grupos de ubicación de Amazon EMR. Para más información acerca de las etiquetas de instancias de clúster de EC2, consulte [Ver instancias del clúster en Amazon EC2](UsingEMR_Tagging.md).

## Adjunta la política gestionada por grupos de colocación a Amazon EMRrole
<a name="emr-plan-ha-launch-pg-policy"></a>

La estrategia de grupos de ubicación requiere una política administrada llamada `AmazonElasticMapReducePlacementGroupPolicy`, que permite a Amazon EMR crear, eliminar y describir grupos de ubicación en Amazon EC2. Debe asociar `AmazonElasticMapReducePlacementGroupPolicy` al rol de servicio de Amazon EMR antes de lanzar un clúster de Amazon EMR con varios nodos principales. 

También puede asociar la política administrada `AmazonEMRServicePolicy_v2` al rol de servicio de Amazon EMR en lugar de la política administrada del grupo de ubicación. `AmazonEMRServicePolicy_v2` permite el mismo acceso a los grupos de ubicación en Amazon EC2 que `AmazonElasticMapReducePlacementGroupPolicy`. Para obtener más información, consulte [Rol de servicio para Amazon EMR (rol de EMR)](emr-iam-role.md).

La política administrada `AmazonElasticMapReducePlacementGroupPolicy` es el siguiente texto JSON creado y administrado por Amazon EMR.

**nota**  
Como la política `AmazonElasticMapReducePlacementGroupPolicy` gestionada se actualiza automáticamente, es posible que la política que se muestra aquí sí lo esté out-of-date. Utilice la consola AWS de administración para ver la política actual.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Resource": [
        "*"
      ],
      "Effect": "Allow",
      "Action": [
        "ec2:DeletePlacementGroup",
        "ec2:DescribePlacementGroups"
      ],
      "Sid": "AllowEC2Deleteplacementgroup"
    },
    {
      "Resource": [
        "arn:aws:ec2:*:*:placement-group/pg-*"
      ],
      "Effect": "Allow",
      "Action": [
        "ec2:CreatePlacementGroup"
      ],
      "Sid": "AllowEC2Createplacementgroup"
    }
  ]
}
```

------

## Lanzamiento de un clúster de Amazon EMR con varios nodos principales mediante una estrategia de grupos con ubicación
<a name="emr-plan-ha-launch-pg-strategy"></a>

Para lanzar un clúster de Amazon EMR con varios nodos principales y con una estrategia de grupos con ubicación, asocie la política administrada de grupos con ubicación `AmazonElasticMapReducePlacementGroupPolicy` al rol de Amazon EMR. Para obtener más información, consulte [Adjunta la política gestionada por grupos de colocación a Amazon EMRrole](#emr-plan-ha-launch-pg-policy).

Cada vez que utiliza este rol para iniciar un clúster de Amazon EMR con varios nodos principales, Amazon EMR intenta lanzar un clúster con la estrategia `SPREAD` aplicada a sus nodos principales. Si utiliza un rol que no tiene la política administrada de grupos con ubicación `AmazonElasticMapReducePlacementGroupPolicy` asociada a él, Amazon EMR intentará lanzar un clúster de Amazon EMR con varios nodos principales sin una estrategia de grupos con ubicación.

Si lanza un clúster de Amazon EMR que tiene varios nodos principales con el `placement-group-configs` parámetro mediante Amazon EMRAPI o CLI, Amazon EMR solo lanza el clúster si EMRrole Amazon tiene adjunta la política de administración de grupos de ubicación. `AmazonElasticMapReducePlacementGroupPolicy` Si Amazon EMRrole no tiene la política adjunta, se produce un error en el inicio del clúster de Amazon EMR con varios nodos principales.

------
#### [ Amazon EMR API ]

**Example Ejemplo: Utilización de una estrategia de grupos con ubicación para lanzar un clúster de grupos de instancias con varios nodos principales desde la API de Amazon EMR**  
Cuando utilice la RunJobFlow acción para crear un clúster de Amazon EMR con varios nodos principales, defina la `PlacementGroupConfigs` propiedad en lo siguiente. Actualmente, el rol de instancia `MASTER` utiliza automáticamente `SPREAD` como estrategia de grupos de ubicación.  

```
{
   "Name":"ha-cluster",
   "PlacementGroupConfigs":[
      {
         "InstanceRole":"MASTER"
      }
   ],
   "ReleaseLabel": emr-6.15.0,
   "Instances":{
      "ec2SubnetId":"subnet-22XXXX01",
      "ec2KeyName":"ec2_key_pair_name",
      "InstanceGroups":[
         {
            "InstanceCount":3,
            "InstanceRole":"MASTER",
            "InstanceType":"m5.xlarge"
         },
         {
            "InstanceCount":4,
            "InstanceRole":"CORE",
            "InstanceType":"m5.xlarge"
         }
      ]
   },
   "JobFlowRole":"EMR_EC2_DefaultRole",
   "ServiceRole":"EMR_DefaultRole"
}
```
+ *ha-cluster*Sustitúyala por el nombre del clúster de alta disponibilidad.
+ *subnet-22XXXX01*Sustitúyalo por tu ID de subred.
+ Sustituya el *ec2\$1key\$1pair\$1name* por el nombre del key pair de EC2 de este clúster. El par de claves de EC2 es opcional y solo se precisa si desea utilizar SSH para acceder a su clúster.

------
#### [ AWS CLI ]

**Example Ejemplo: utilice una estrategia de grupos de ubicación para lanzar un clúster de flota de instancias con varios nodos principales desde AWS Command Line Interface**  
Cuando utilice la RunJobFlow acción para crear un clúster de Amazon EMR con varios nodos principales, defina la `PlacementGroupConfigs` propiedad en lo siguiente. Actualmente, el rol de instancia `MASTER` utiliza automáticamente `SPREAD` como estrategia de grupos de ubicación.  

```
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER \
--release-label emr-6.15.0 \
--instance-fleets '[
    {
        "InstanceFleetType": "MASTER",
        "TargetOnDemandCapacity": 3,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Master - 1"
    },
    {
        "InstanceFleetType": "CORE",
        "TargetOnDemandCapacity": 5,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 2,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 4,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Core - 2"
    }
]' \
--ec2-attributes '{
    "KeyName": "ec2_key_pair_name",
    "InstanceProfile": "EMR_EC2_DefaultRole",
    "SubnetIds": [
        "subnet-22XXXX01",
        "subnet-22XXXX02"
    ]
}' \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
```
+ *ha-cluster*Sustitúyala por el nombre del clúster de alta disponibilidad.
+ Sustituya el *ec2\$1key\$1pair\$1name* por el nombre del key pair de EC2 de este clúster. El par de claves de EC2 es opcional y solo se precisa si desea utilizar SSH para acceder a su clúster.
+ Sustituya *subnet-22XXXX01* y *subnet-22XXXX02* por su IDs subred.

------

## Lanzamiento de un clúster con varios nodos principales sin una estrategia de grupos de ubicación
<a name="emr-plan-ha-launch-no-pg-strategy"></a>

Para que un clúster con varios nodos principales lance nodos principales sin la estrategia de grupos de ubicación, debe realizar una de las siguientes acciones:
+ Eliminar la política gestionada por grupos `AmazonElasticMapReducePlacementGroupPolicy` de colocación de Amazon EMRrole, o
+ Lanzar un clúster con varios nodos principales con el parámetro `placement-group-configs` mediante la API o la CLI de Amazon EMR y con `NONE` como estrategia de grupos de ubicación.

------
#### [ Amazon EMR API ]

**Example — Lanzamiento de un clúster con varios nodos principales sin una estrategia de grupos de ubicación mediante la API de Amazon EMR.**  
Cuando utilice la RunJobFlow acción para crear un clúster con varios nodos principales, defina la `PlacementGroupConfigs` propiedad de la siguiente manera.  

```
{
   "Name":"ha-cluster",
   "PlacementGroupConfigs":[
      {
         "InstanceRole":"MASTER",
         "PlacementStrategy":"NONE"
      }
   ],
   "ReleaseLabel":"emr-5.30.1",
   "Instances":{
      "ec2SubnetId":"subnet-22XXXX01",
      "ec2KeyName":"ec2_key_pair_name",
      "InstanceGroups":[
         {
            "InstanceCount":3,
            "InstanceRole":"MASTER",
            "InstanceType":"m5.xlarge"
         },
         {
            "InstanceCount":4,
            "InstanceRole":"CORE",
            "InstanceType":"m5.xlarge"
         }
      ]
   },
   "JobFlowRole":"EMR_EC2_DefaultRole",
   "ServiceRole":"EMR_DefaultRole"
}
```
+ *ha-cluster*Sustitúyala por el nombre del clúster de alta disponibilidad.
+ *subnet-22XXXX01*Sustitúyalo por tu ID de subred.
+ Sustituya el *ec2\$1key\$1pair\$1name* por el nombre del key pair de EC2 de este clúster. El par de claves de EC2 es opcional y solo se precisa si desea utilizar SSH para acceder a su clúster.

------
#### [ Amazon EMR CLI ]

**Example — Lanzamiento de un clúster con varios nodos principales sin una estrategia de grupos de ubicación mediante la CLI de Amazon EMR.**  
Cuando utilice la RunJobFlow acción para crear un clúster con varios nodos principales, defina la `PlacementGroupConfigs` propiedad de la siguiente manera.  

```
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER,PlacementStrategy=NONE \
--release-label emr-5.30.1 \
--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \
--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
```
+ *ha-cluster*Sustitúyala por el nombre del clúster de alta disponibilidad.
+ *subnet-22XXXX01*Sustitúyalo por tu ID de subred.
+ Sustituya el *ec2\$1key\$1pair\$1name* por el nombre del key pair de EC2 de este clúster. El par de claves de EC2 es opcional y solo se precisa si desea utilizar SSH para acceder a su clúster.

------

## Comprobación de la configuración de la estrategia de grupos de ubicación asociada al clúster con varios nodos principales
<a name="emr-plan-ha-check-pg-using-api"></a>

Puede utilizar la API de descripción del clúster de Amazon EMR para ver la configuración de la estrategia de grupos de ubicación asociada al clúster con varios nodos principales.

**Example**  

```
aws emr describe-cluster --cluster-id "j-xxxxx"
{
   "Cluster":{
      "Id":"j-xxxxx",
      ...
      ...
      "PlacementGroups":[
         {
            "InstanceRole":"MASTER",
            "PlacementStrategy":"SPREAD"
         }
      ]
   }
}
```