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
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 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.
Adjunta la política gestionada por grupos de colocación a Amazon EMRrole
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).
La política administrada AmazonElasticMapReducePlacementGroupPolicy es el siguiente texto JSON creado y administrado por Amazon EMR.
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
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.
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
-
ejemplo 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-clusterSustitúyala por el nombre del clúster de alta disponibilidad.
-
subnet-22XXXX01Sustitúyalo por tu ID de subred.
-
Sustituya el ec2_key_pair_name 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
-
ejemplo 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-clusterSustitúyala por el nombre del clúster de alta disponibilidad.
-
Sustituya el ec2_key_pair_name 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
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
-
ejemplo— 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-clusterSustitúyala por el nombre del clúster de alta disponibilidad.
-
subnet-22XXXX01Sustitúyalo por tu ID de subred.
-
Sustituya el ec2_key_pair_name 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
-
ejemplo— 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-clusterSustitúyala por el nombre del clúster de alta disponibilidad.
-
subnet-22XXXX01Sustitúyalo por tu ID de subred.
-
Sustituya el ec2_key_pair_name 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
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.
ejemplo
aws emr describe-cluster --cluster-id "j-xxxxx"
{
"Cluster":{
"Id":"j-xxxxx",
...
...
"PlacementGroups":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"SPREAD"
}
]
}
}