Integración de Amazon EMR con grupos de ubicación EC2 - Amazon EMR

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 EC2

Al lanzar un clúster de múltiples nodos principales de Amazon EMR en Amazon EC2, tiene la opción de utilizar estrategias de grupos de ubicación para especificar cómo quiere que se desplieguen las instancias de nodos principales para protegerlas contra los fallos 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 obtener más información sobre las estrategias y limitaciones de EC2 ubicación, consulte los grupos de ubicación en la Guía del EC2 usuario de instancias de Linux.

Amazon establece un límite inicial EC2 de 500 clústeres habilitados para la estrategia de grupos de ubicación que se pueden lanzar por región. AWS Ponte 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 EC2 ubicación que Amazon EMR crea mediante el seguimiento del par clave-valor que Amazon EMR asocia a la estrategia de grupos de ubicación de Amazon EMR. Para obtener más información sobre las etiquetas de instancias de EC2 clúster, consulte. Ver instancias de 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 denominadaAmazonElasticMapReducePlacementGroupPolicy, 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 adjuntar la política AmazonEMRServicePolicy_v2 gestionada a la función de servicio Amazon EMR en lugar de a la política gestionada por el grupo de colocación. AmazonEMRServicePolicy_v2permite el mismo acceso a los grupos de colocación en Amazon EC2 que elAmazonElasticMapReducePlacementGroupPolicy. 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.

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.

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

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 ec2_key_pair_name el por el nombre del EC2 key pair de claves de este clúster. EC2 el key pair es opcional y solo es obligatorio si quieres usar SSH para acceder a tu clúster.

AWS CLI
ejemplo Ejemplo: Utilización de una estrategia de grupos con ubicación para lanzar un clúster de flotas de instancias con varios nodos principales desde la 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 ec2_key_pair_name el por el nombre del EC2 key pair de claves de este clúster. EC2 el key pair es opcional y solo es obligatorio si quieres usar SSH para acceder a tu 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 ec2_key_pair_name el por el nombre del EC2 key pair de claves de este clúster. EC2 el key pair es opcional y solo es obligatorio si quieres usar SSH para acceder a tu 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 utilices la RunJobFlow acción para crear un clúster con varios nodos principales, establece 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 ec2_key_pair_name el por el nombre del EC2 key pair de claves de este clúster. EC2 el key pair es opcional y solo es obligatorio si quieres usar SSH para acceder a tu 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.

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