Lanzar un clúster de Amazon EMR con varios nodos principales - 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.

Lanzar un clúster de Amazon EMR con varios nodos principales

En este tema se proporcionan detalles de configuración y ejemplos para lanzar un clúster de Amazon EMR con varios nodos principales.

nota

Amazon EMR habilita automáticamente la protección de terminación para todos los clústeres con varios nodos principales y anula cualquier configuración de terminación automática que se proporcione al crear el clúster. Para cerrar un clúster con varios nodos principales, primero debe modificar los atributos del clúster para deshabilitar la protección contra la terminación. Para ver instrucciones, consulte Terminar un clúster de Amazon EMR con varios nodos principales.

Requisitos previos

  • Puede lanzar un clúster de Amazon EMR con varios nodos principales en subredes públicas y privadas de la VPC. EC2-Classic no se admite. Para lanzar un clúster de Amazon EMR con varios nodos principales en una subred pública, debe habilitar las instancias de dicha subred para que reciban una dirección IP pública seleccionando Asignar automáticamente IPv4 en la consola o ejecutando del comando siguiente. Sustituya 22XXXX01 por su ID de subred.

    aws ec2 modify-subnet-attribute --subnet-id subnet-22XXXX01 --map-public-ip-on-launch
  • Para ejecutar Hive, Hue u Oozie en un clúster de Amazon EMR con varios nodos principales, debe crear un metaalmacén externo. Para más información, consulte Configuración de un metaalmacén externo para Hive, Uso de Hue con una base de datos remota en Amazon RDS o Apache Oozie.

  • Para utilizar la autenticación de Kerberos en un clúster, debe configurar un KDC externo. Para más información, consulte Configuración de Kerberos en Amazon EMR.

Lanzar un clúster de Amazon EMR con varios nodos principales

Puede lanzar un clúster con varios nodos principales cuando utiliza los grupos de instancias o las flotas de instancias. Al utilizar grupos de instancias con varios nodos principales, debe especificar un valor de recuento de instancias de 3 para el grupo de instancias del nodo principal. Cuando utiliza flotas de instancias con varios nodos principales, debe especificar los valores TargetOnDemandCapacity de 3, TargetSpotCapacity de 0 para la flota de instancias principal y WeightedCapacity de 1 para cada tipo de instancia que configure para la flota principal.

En los siguientes ejemplos, se muestra cómo lanzar el clúster con la AMI predeterminada o una AMI personalizada tanto con grupos de instancias o con flotas de instancias:

nota

Debe especificar el ID de subred cuando lance un clúster de Amazon EMR con varios nodos principales mediante AWS CLI. Sustituya 22XXXX01 y 22XXXX02 por su ID de subred en los siguientes ejemplos.

Default AMI, instance groups
ejemplo Ejemplo: Lanzamiento de un clúster de grupos de instancias de Amazon EMR con varios nodos principales mediante una AMI predeterminada
aws emr create-cluster \ --name "ha-cluster" \ --release-label emr-6.15.0 \ --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
Default AMI, instance fleets
ejemplo Ejemplo: Lanzamiento de un clúster de flotas de instancias de Amazon EMR con varios nodos principales mediante una AMI predeterminada
aws emr create-cluster \ --name "ha-cluster" \ --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 '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-22XXXX01", "subnet-22XXXX02"]}' \ --service-role EMR_DefaultRole \ --applications Name=Hadoop Name=Spark
Custom AMI, instance groups
ejemplo Ejemplo: Lanzamiento de un clúster de grupos de instancias de Amazon EMR con varios nodos principales mediante una AMI personalizada
aws emr create-cluster \ --name "custom-ami-ha-cluster" \ --release-label emr-6.15.0 \ --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 \ --custom-ami-id ami-MyAmiID
Custom AMI, instance fleets
ejemplo Ejemplo: Lanzamiento de un clúster de flotas de instancias de Amazon EMR con varios nodos principales mediante una AMI personalizada
aws emr create-cluster \ --name "ha-cluster" \ --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 '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-22XXXX01", "subnet-22XXXX02"]}' \ --service-role EMR_DefaultRole \ --applications Name=Hadoop Name=Spark \ --custom-ami-id ami-MyAmiID

Terminar un clúster de Amazon EMR con varios nodos principales

Para terminar un clúster de Amazon EMR con varios nodos principales, debe desactivar la protección de terminación antes de terminar el clúster, tal y como se muestra en el ejemplo siguiente. Sustituya j-3KVTXXXXXX7UG por su ID de clúster.

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected aws emr terminate-clusters --cluster-id j-3KVTXXXXXX7UG