

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.

# Configuración de grupos de instancias uniformes para su clúster de Amazon EMR
<a name="emr-uniform-instance-group"></a>

Con la configuración de grupos de instancias, cada tipo de nodo (principal, principal o tarea) consta del mismo tipo de instancia y de la misma opción de compra para las instancias: On-Demand o Spot. Estos ajustes se especifican al crear un grupo de instancias. No se pueden cambiar más adelante. Puede, sin embargo, añadir instancias del mismo tipo y opción de compra a los grupos instancias secundarias y de tareas. También puede eliminar instancias.

Si las On-Demand instancias del clúster coinciden con los atributos de las reservas de capacidad abiertas (tipo de instancia, plataforma, arrendamiento y zona de disponibilidad) disponibles en su cuenta, las reservas de capacidad se aplican automáticamente. Puede usar reservas de capacidad abiertas para los nodos principales, básicos y de tarea. Sin embargo, no puede utilizar reservas de capacidad específicas ni impedir que las instancias se lancen en reservas de capacidad abiertas con atributos coincidentes al aprovisionar clústeres mediante grupos de instancias. Si quiere utilizar reservas de capacidad específicas o evitar que las instancias se lancen en reservas de capacidad abiertas, utilice flotas de instancias en su lugar. Para obtener más información, consulte [Uso de las reservas de capacidad con flotas de instancias en Amazon EMR](on-demand-capacity-reservations.md).

Para agregar distintos tipos de instancia una vez creado un clúster, puede agregar grupos de instancia de tareas adicionales. Puede elegir distintos tipos de instancia y opciones de compra para cada grupo de instancias. Para obtener más información, consulte [Utilice el escalado de clústeres de Amazon EMR para adaptarse a las cargas de trabajo cambiantes](emr-scale-on-demand.md).

Al lanzar instancias, la preferencia de reserva de capacidad de la On-Demand instancia se establece de forma predeterminada`open`, lo que le permite ejecutarse en cualquier reserva de capacidad abierta que tenga atributos coincidentes (tipo de instancia, plataforma, zona de disponibilidad). Para obtener más información sobre las reservas On-Demand de capacidad, consulte[Uso de las reservas de capacidad con flotas de instancias en Amazon EMR](on-demand-capacity-reservations.md).

En esta sección se explica cómo crear un clúster con grupos de instancias uniformes. Para obtener más información sobre la modificación de un grupo de instancias existente añadiendo o eliminando instancias de forma manual o con escalado automático, consulte [Administración de clústeres de Amazon EMR](emr-manage.md).

## Usar la consola para configurar grupos de instancias uniformes
<a name="emr-uniform-instance-group-console"></a>

------
#### [ Console ]

**Para crear un clúster con grupos de instancias mediante la nueva consola**

1. Inicie sesión en y abra la Consola de administración de AWS consola de Amazon EMR en. [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr)

1. En **EMR en EC2**, en el panel de navegación izquierdo, elija **Clústeres** y, a continuación, seleccione **Crear clúster**.

1. En **Configuración del clúster**, elija **Grupos de instancias**.

1. En **Grupos de nodos**, hay una sección para cada tipo de grupo de nodos. Para el grupo de nodos principales, seleccione la casilla **Usar varios nodos principales** si desea tener 3 nodos principales. Seleccione la casilla **Usar la opción de compra de spot** si desea utilizar la opción de compra de spot.

1. Para los grupos de nodos principales y básicos, seleccione **Agregar tipo de instancia** y elija hasta 5 tipos de instancias. Para el grupo de tarea, seleccione **Agregar tipo de instancia** y elija hasta quince tipos de instancias. Amazon EMR podría aprovisionar cualquier combinación de estos tipos de instancia cuando se lance el clúster.

1. En cada tipo de grupo de nodos, seleccione el menú desplegable **Acciones** situado junto a cada instancia para cambiar estas configuraciones:  
**Agregar volúmenes de EBS**  
Especifique los volúmenes de EBS que desee asociar al tipo de instancia una vez que Amazon EMR lo aprovisione.  
**Edición del precio de spot máximo**  
Debe especificar un precio de spot máximo para cada tipo de instancia de una flota. Puede establecer este precio como un porcentaje del On-Demand precio o como un importe específico en dólares. Si en una zona de disponibilidad el precio de spot actual está por debajo de su precio de spot máximo, Amazon EMR aprovisiona instancias de spot. Solo tiene que pagar el precio de spot, que no es necesariamente el precio de spot máximo.

1. De manera opcional, expanda **Configuración de nodos** para introducir una configuración de JSON o para cargar JSON desde Amazon S3.

1. Elija cualquier otra opción que se aplique a su clúster. 

1. Para lanzar el clúster, elija **Crear clúster**.

------

## Úsalo AWS CLI para crear un clúster con grupos de instancias uniformes
<a name="emr-uniform-instance-group-cli"></a>

Para especificar la configuración de grupos de instancias para un clúster con la AWS CLI, utilice el comando `create-cluster` junto con el parámetro `--instance-groups`. Amazon EMR asume la opción On-Demand Instance a menos que especifiques el `BidPrice` argumento de un grupo de instancias. *Para ver ejemplos de `create-cluster` comandos que lanzan grupos de instancias uniformes con On-Demand instancias y una variedad de opciones de clúster, escriba `aws emr create-cluster help ` en la línea de comandos o consulte [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) en la AWS CLI Referencia de comandos.*

Puedes usarlo AWS CLI para crear grupos de instancias uniformes en un clúster que use instancias puntuales. El precio de spot que se ofrece depende de la zona de disponibilidad. Cuando utiliza la CLI o la API, puede especificar la zona de disponibilidad con el `AvailabilityZone` argumento (si utiliza una EC2-classic red) o con el `SubnetID ` argumento del `--ec2-attributes ` parámetro. La zona de disponibilidad o la subred que seleccione se aplica al clúster, por lo que se utiliza para todos los grupos de instancias. Si no especifica ninguna zona de disponibilidad o subred de forma explícita, Amazon EMR selecciona la zona de disponibilidad con el menor precio de spot al lanzar el clúster.

El siguiente ejemplo muestra un comando `create-cluster` que crea grupos de instancias principales, básicas y de tarea que utilizan instancias de spot. {{myKey}}Sustitúyalo por el nombre del par de claves de Amazon EC2. 

**nota**  
Se incluyen caracteres de continuación de línea de Linux (\\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

```
aws emr create-cluster --name "{{MySpotCluster}}" \
  --release-label {{emr-7.13.0}} \
  --use-default-roles \
  --ec2-attributes KeyName={{myKey}} \
  --instance-groups \
    InstanceGroupType={{MASTER}},InstanceType={{m5.xlarge}},InstanceCount={{1}},BidPrice={{0.25}} \
    InstanceGroupType={{CORE}},InstanceType={{m5.xlarge}},InstanceCount={{2}},BidPrice={{0.03}} \
    InstanceGroupType={{TASK}},InstanceType={{m5.xlarge}},InstanceCount={{4}},BidPrice={{0.03}} \
    InstanceGroupType={{TASK}},InstanceType={{m5.xlarge}},InstanceCount={{2}},BidPrice={{0.04}}
```

Con la CLI, puede crear clústeres de grupos de instancias uniformes que especifiquen una AMI personalizada única para cada tipo de instancia del grupo de instancias. Esto le permite utilizar diferentes arquitecturas de instancias en el mismo grupo de instancias. Cada tipo de instancia debe usar una AMI personalizada con una arquitectura coincidente. Por ejemplo, se configuraría un tipo de instancia m5.xlarge con una AMI personalizada de arquitectura x86\_64 y un tipo de instancia m6g.xlarge con la AMI personalizada de arquitectura `AWS AARCH64` correspondiente (ARM). 

En el siguiente ejemplo, se muestra un clúster de grupos de instancias uniforme creado con dos tipos de instancias, cada uno con su propia AMI personalizada. Tenga en cuenta que las AMI personalizadas se especifican solo en el nivel de tipo de instancia, no en el nivel de clúster. El objetivo es evitar conflictos entre las AMI de tipo de instancia y una AMI en el nivel de clúster, lo que provocaría un error en el lanzamiento del clúster. 

```
aws emr create-cluster
  --release-label emr-5.30.0 \
  --service-role EMR_DefaultRole \
  --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \
  --instance-groups \
    InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 \
    InstanceGroupType=CORE,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-234567
```

Puede agregar varias AMI personalizadas a un grupo de instancias que agrega a un clúster en ejecución. El argumento `CustomAmiId` se puede usar con el comando `add-instance-groups`, como se muestra en el siguiente ejemplo.

```
aws emr add-instance-groups --cluster-id j-123456 \
  --instance-groups \
    InstanceGroupType=Task,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456
```

## Uso del SDK de Java para crear un grupo de instancias
<a name="emr-instance-group-sdk"></a>

Puede instanciar un objeto `InstanceGroupConfig` que especifica la configuración de un grupo de instancias para un clúster. Para utilizar instancias de spot, define las propiedades `withBidPrice` y `withMarket` en el objeto `InstanceGroupConfig`. El código siguiente muestra cómo definir grupos de instancias principales, básicas y de tarea que ejecutan instancias de spot.

```
InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig()
	.withInstanceCount(1)
	.withInstanceRole("MASTER")
	.withInstanceType("m4.large")
	.withMarket("SPOT")
	.withBidPrice("0.25"); 
	
InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig()
	.withInstanceCount(4)
	.withInstanceRole("CORE")
	.withInstanceType("m4.large")
	.withMarket("SPOT")
	.withBidPrice("0.03");
	
InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig()
	.withInstanceCount(2)
	.withInstanceRole("TASK")
	.withInstanceType("m4.large")
	.withMarket("SPOT")
	.withBidPrice("0.10");
```