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.
Planificación y configuración de flotas de instancias para su clúster de Amazon EMR
nota
La configuración de las flotas de instancias está disponible solo en las versiones 4.8.0 y posteriores de Amazon EMR, excluidas las versiones 5.0.0 y 5.0.3.
La configuración de la flota de instancias para los clústeres de Amazon EMR le permite seleccionar una amplia variedad de opciones de aprovisionamiento para las instancias de Amazon EC2 y lo ayuda a desarrollar una estrategia de recursos flexible y elástica para cada tipo de nodo del clúster.
En una configuración de flota de instancias, debe especificar una capacidad objetivo para On-Demandlas instancias y las instancias puntuales dentro de cada flota. Cuando se lanza el clúster, Amazon EMR aprovisiona instancias hasta que se atienden los destinos. Cuando Amazon EC2 reclama una instancia de spot en un clúster en ejecución debido a un incremento de los precios, o una instancia devuelve un error, Amazon EMR intenta sustituir la instancia por cualquiera de los tipos de instancias que especifique. De ese modo, resulta más sencillo recuperar la capacidad durante un pico de los precios de spot.
También puede seleccionar varias subredes para distintas zonas de disponibilidad. Cuando Amazon EMR lanza el clúster, busca en esas subredes para encontrar las instancias y las opciones de compra que especifique. Si Amazon EMR detecta un evento AWS a gran escala en una o más de las zonas de disponibilidad, Amazon EMR intentará automáticamente desviar el tráfico de las zonas de disponibilidad afectadas e intentará lanzar nuevos clústeres que usted cree en zonas de disponibilidad alternativas de acuerdo con sus selecciones. Tenga en cuenta que la selección de la zona de disponibilidad del clúster solo se realiza en el momento de crear el clúster. Los nodos del clúster existentes no se vuelven a lanzar automáticamente en una nueva zona de disponibilidad en el caso de que se produzca una interrupción en la zona de disponibilidad.
Consideraciones para trabajar con flotas de instancias
Tenga en cuenta los siguientes aspectos al utilizar flotas de instancias con Amazon EMR.
-
Puede tener una flota de instancias, y solo una, por tipo de nodo (principal, básico, de tarea). Puede especificar hasta cinco tipos de instancias de Amazon EC2 para cada flota de la Consola de administración de AWS (o un máximo de 30 tipos por flota de instancias al crear un clúster mediante la API o AWS CLI Amazon EMR y una). Estrategia de asignación para flotas de instancias
-
Amazon EMR elige uno o todos los tipos de instancias de Amazon EC2 especificados para aprovisionarlos con las opciones de venta al contado On-Demand y de compra.
-
Puede establecer las capacidades objetivo para las On-Demand instancias puntuales y para la flota principal y la flota de tareas. Utilice vCPU o una unidad genérica asignada a cada instancia de Amazon EC2 que se tiene en cuenta para los destinos. Amazon EMR aprovisiona instancias hasta que se ha satisfecho por completo cada capacidad de destino. Para la flota principal, el destino es siempre uno.
-
Puede elegir una subred (zona de disponibilidad) o un intervalo. Si elige un intervalo, Amazon EMR aprovisiona capacidad en la zona de disponibilidad que sea la mejor opción.
-
Cuando se especifica una capacidad de destino para las instancias de spot:
-
Para cada tipo de instancia, especifique un precio de spot máximo. Amazon EMR aprovisiona las instancias de spot si el precio de spot está por debajo del precio de spot máximo. Solo tiene que pagar el precio de spot, que no es necesariamente el precio de spot máximo.
-
Para cada flota, defina un período de tiempo de espera para aprovisionamiento de instancias de spot. Si Amazon EMR no puede aprovisionar capacidad puntual, puede terminar el clúster o cambiar a capacidad de aprovisionamiento On-Demand en su lugar. Esto solo se aplica al aprovisionamiento de clústeres, no a su cambio de tamaño. Si el tiempo de espera finaliza durante el proceso de redimensionamiento del clúster, las solicitudes de spot no aprovisionadas se anularán sin transferirse a la capacidad. On-Demand
-
-
En el caso de cada flota, puede especificar una de las siguientes estrategias de asignación para sus instancias de Spot: optimizadas en función de la relación precio-capacidad, optimizadas en función de la capacidad, priorizadas y optimizadas en función de la capacidad, con el precio más bajo o diversificadas en todos los grupos.
-
Para cada flota, puede aplicar las siguientes estrategias de asignación para sus On-Demand instancias: la estrategia de precio más bajo o la estrategia priorizada.
-
Para cada flota con On-Demand instancias, puede optar por aplicar opciones de reserva de capacidad.
-
Si utiliza una estrategia de asignación para flotas de instancias, se deben tener en cuenta las siguientes consideraciones al elegir subredes para su clúster de EMR:
Cuando Amazon EMR aprovisiona un clúster con una flota de tareas, filtra las subredes que no tienen suficientes direcciones IP disponibles para aprovisionar todas las instancias del clúster de EMR solicitado. Esto incluye las direcciones IP necesarias para las flotas de instancias principales, básicas y de tareas durante el lanzamiento del clúster. A continuación, Amazon EMR aprovecha su estrategia de asignación para determinar el grupo de instancias, en función del tipo de instancia y las subredes restantes con direcciones IP suficientes, para lanzar el clúster.
Si Amazon EMR no puede lanzar todo el clúster debido a que no hay suficientes direcciones IP disponibles, intentará identificar las subredes con suficientes direcciones IP libres para lanzar las flotas de instancias esenciales (principales y básicas). En estos casos, la flota de instancias de la tarea pasará a un estado suspendido, en lugar de finalizar el clúster con un error.
Si ninguna de las subredes especificadas contiene direcciones IP suficientes para aprovisionar las flotas de instancias principales y básicas esenciales, el lanzamiento del clúster fallará y mostrará un VALIDATION_ERROR. Esto activa un evento de finalización del clúster de gravedad CRITICAL que le notifica de que el clúster no se puede lanzar. Para impedir este problema, se recomienda aumentar la cantidad de direcciones IP en las subredes.
Si ejecuta Amazon EMR versión emr-7.7.0 o superior y aplica la estrategia de asignación para flotas de instancias, puede escalar el clúster hasta 4000 instancias de EC2 y 14 000 volúmenes EBS por flota de instancias. En versiones anteriores a emr-7.7.0, el clúster solo puede escalarse hasta 2000 instancias de EC2 y 7000 volúmenes EBS por flota de instancias.
-
Al lanzar On-Demand instancias, puede utilizar reservas de capacidad abiertas o segmentadas para los nodos principales, principales y de tareas de sus cuentas. Es posible que vea una capacidad insuficiente en On-Demand las instancias con una estrategia de asignación, por ejemplo, en las flotas. Se recomienda que especifique varios tipos de instancias para diversificar y reducir la posibilidad de que la capacidad sea insuficiente. Para obtener más información, consulte Uso de las reservas de capacidad con flotas de instancias en Amazon EMR.
Opciones de flota de instancias
Utilice las siguientes directrices para comprender las opciones de flota de instancia.
Temas
Configuración de las capacidades de destino
Especifique las capacidades de destino que desee para la flota de instancias secundarias y la flota de instancias de tareas. Cuando lo haga, eso determinará el número de On-Demand instancias e instancias puntuales que Amazon EMR aprovisiona. Cuando se especifica una instancia, decide la cantidad de cada instancia que se tiene en cuenta para el destino. Cuando se aprovisiona una On-Demand instancia, se tiene en cuenta para el On-Demand destino. Lo mismo sucede para las instancias de spot. A diferencia de las flotas de instancias básicas y de tarea, la flota de instancias principales siempre es una instancia. Por tanto, la capacidad de destino para esta flota es siempre uno.
Cuando se utiliza la consola, las vCPU del tipo de instancia de Amazon EC2 se utilizan como recuento para las capacidades de destino de forma predeterminada. Puede cambiar esto a Generic units (Unidades genéricas) y, a continuación, especificar el recuento de cada tipo de instancia EC2. Cuando se usa AWS CLI, se asignan manualmente unidades genéricas para cada tipo de instancia.
importante
Al elegir un tipo de instancia mediante el Consola de administración de AWS, la cantidad de vCPU que se muestra para cada tipo de instancia es la cantidad de núcleos virtuales YARN para ese tipo de instancia, no la cantidad de vCPU de EC2 para ese tipo de instancia. Para más información sobre el número de vCPU para cada tipo de instancia, consulte Tipos de instancias de Amazon EC2
Para cada flota, se especifican hasta cinco tipos de instancia de Amazon EC2. Si usa un clúster Estrategia de asignación para flotas de instancias y lo crea mediante la AWS CLI API de Amazon EMR, puede especificar hasta 30 tipos de instancias de EC2 por flota de instancias. Amazon EMR elige cualquier combinación de estos tipos de instancias de EC2 para satisfacer sus capacidades de destino. Dado que Amazon EMR desea rellenar la capacidad de destino por completo, podría producirse un sobreuso. Por ejemplo, si hay dos unidades no atendidas y Amazon EMR solo puede aprovisionar una instancia con un recuento de cinco unidades, la instancia aún se aprovisionará, lo que significa que la capacidad de destino se excederá en tres unidades.
Si reduce la capacidad de destino para cambiar el tamaño de un clúster en ejecución, Amazon EMR intenta completar tareas de aplicación y termina instancias para satisfacer el nuevo destino. Para obtener más información, consulte Terminación al completar las tareas.
Opciones de lanzamiento
En el caso de cada grupo de instancias, especifique un precio de spot máximo por cada tipo de instancia en una flota. Puede establecer este precio como un porcentaje del On-Demand precio o como un importe específico en dólares. Amazon EMR aprovisiona instancias de spot si el precio de spot actual en una zona de disponibilidad está por debajo de su precio de spot máximo. Solo tiene que pagar el precio de spot, que no es necesariamente el precio de spot máximo.
nota
Las instancias de spot con una duración definida (también conocidas como bloques de spot) dejarán de estar disponibles para los nuevos clientes a partir del 1 de julio de 2021. En el caso de los clientes que hayan utilizado previamente la característica, se continuará ofreciendo soporte a las instancias de spot con una duración definida hasta el 31 de diciembre de 2022.
Disponible en Amazon EMR 5.12.1 y versiones posteriores, tiene la opción de lanzar flotas de puntos e On-Demand instancias con una asignación de capacidad optimizada. Esta opción de estrategia de asignación se puede configurar en la antigua Consola de administración de AWS o mediante la API. RunJobFlow Tenga en cuenta que no puede personalizar la estrategia de asignación en la nueva consola. El uso de la opción de estrategia de asignación requiere permisos de rol de servicio adicionales. Si utiliza el rol de servicio predeterminado de Amazon EMR y la política administrada (EMR_DefaultRole y AmazonEMRServicePolicy_v2) para el clúster, los permisos para la opción de estrategia de asignación ya están incluidos. Si no utiliza el rol de servicio ni la política administrada de Amazon EMR predeterminados, debe agregarlos para utilizar esta opción. Consulte Rol de servicio para Amazon EMR (rol de EMR).
Para más información acerca de las instancias de Spot, consulte Instancias de Spot en la Guía del usuario de Amazon EC2. Para obtener más información sobre On-Demand las instancias, consulte On-DemandInstancias en la Guía del usuario de Amazon EC2.
Si decide lanzar flotas de On-Demand instancias con la estrategia de asignación de precios más bajos, tiene la opción de utilizar las reservas de capacidad. Las opciones de reserva de capacidad se pueden establecer mediante la API RunJobFlow de Amazon EMR. Las reservas de capacidad requieren permisos de rol de servicio adicionales que debe agregar para utilizar estas opciones. Consulte Permisos de estrategia de asignación. Tenga en cuenta que no puede personalizar las reservas de capacidad en la nueva consola.
Opciones para varias subredes (zonas de disponibilidad)
Cuando utilice flotas de instancias, puede especificar varias subredes de Amazon EC2 dentro de una VPC, cada una de ellas correspondiente a una zona de disponibilidad diferente. Si la usaEC2-Classic, especifica las zonas de disponibilidad de forma explícita. Amazon EMR identifica la mejor zona de disponibilidad para lanzar instancias de acuerdo con sus especificaciones de flota. Las instancias se aprovisionan siempre en una única zona de disponibilidad. Puede seleccionar subredes privadas o subredes públicas, pero no puede combinarlas y las subredes que especifique deben estar dentro de la misma VPC.
Configuración del nodo maestro
Dado que la flota de instancias principales es únicamente una sola instancia, su configuración es ligeramente distinta de las flotas de instancias básicas y de tarea. Solo debe seleccionar Spot On-Demand o Spot para la flota de instancias principal, ya que consta de una sola instancia. Si utiliza la consola para crear la flota de instancias, la capacidad de destino para la opción de compra que seleccione se define en 1. Si usa el AWS CLI, TargetOnDemandCapacity defina siempre uno TargetSpotCapacity de los dos en 1, según corresponda. Aún puede elegir hasta cinco tipos de instancias para la flota de instancias principal (o un máximo de 30 si utiliza la opción de estrategia de asignación para On-Demand las instancias puntuales). Sin embargo, a diferencia de las flotas de instancias básicas y de tarea, donde Amazon EMR podría aprovisionar varias instancias de tipos distintos, Amazon EMR selecciona un único tipo de instancia para aprovisionar la flota de instancias principales.
Estrategia de asignación para flotas de instancias
Con las versiones 5.12.1 y posteriores de Amazon EMR, puede utilizar la opción de estrategia de asignación con instancias On-Demand puntuales para cada nodo del clúster. Al crear un clúster mediante AWS CLI, la API de Amazon EMR o la consola de Amazon EMR con una estrategia de asignación, puede especificar hasta 30 tipos de instancias de Amazon EC2 por flota. Con la configuración predeterminada de flota de instancias del clúster de Amazon EMR, puede tener hasta 5 tipos de instancias por flota. Se recomienda que utilice la opción de estrategia de asignación para un aprovisionamiento de clústeres más rápido, una asignación de instancias de spot más precisa y menos interrupciones de dichas instancias.
Temas
Estrategia de asignación con instancias On-Demand
Las siguientes estrategias de asignación están disponibles para sus On-Demand instancias:
lowest-price(predeterminado)La estrategia de asignación con el precio más bajo lanza On-Demand las instancias desde el grupo con el precio más bajo que tenga capacidad disponible. Si el grupo con el precio más bajo no tiene capacidad disponible, las On-Demand instancias provienen del siguiente grupo con el precio más bajo y con capacidad disponible.
prioritizedLa estrategia de asignación priorizada le permite especificar un valor de prioridad para cada tipo de instancia de su flota de instancias. Amazon EMR lanza las On-Demand instancias que tienen la máxima prioridad. Si usa esta estrategia, debe configurar la prioridad para al menos un tipo de instancia. Si no configura el valor de prioridad para un tipo de instancia, Amazon EMR asigna la prioridad más baja a ese tipo de instancia. Cada flota de instancias (principal, básica o de tarea) de un clúster puede tener un valor de prioridad diferente para un tipo de instancia determinado.
nota
Si utiliza la estrategia de asignación puntual priorizada y con capacidad optimizada, Amazon EMR aplica las mismas prioridades tanto a sus On-Demand instancias como a las instancias puntuales cuando establece las prioridades.
Estrategia de asignación con instancias de spot
En el caso de las instancias de spot, puede elegir una de las siguientes estrategias de asignación:
price-capacity-optimized(recomendado)-
La estrategia de asignación optimizada en función de la relación precio-capacidad lanza instancias de spot desde los grupos de instancias de spot que tienen la mayor capacidad disponible y el precio más bajo para la cantidad de instancias que se están lanzando. Como resultado, la estrategia optimizada en función de la relación precio-capacidad suele tener más probabilidades de conseguir capacidad de Spot y ofrece tasas de interrupción más bajas. Esta es la estrategia predeterminada para la versión 6.10.0 y versiones posteriores de Amazon EMR.
capacity-optimized-
La estrategia de asignación optimizada en función de la capacidad lanza las instancias de spot en los grupos más disponibles con la menor probabilidad de interrupción a corto plazo. Esta es una buena opción para las cargas de trabajo que podrían tener un costo de interrupción más alto asociado con el trabajo que se reinicia. Esta es la estrategia predeterminada para las versiones 6.9.0 y anteriores de Amazon EMR.
capacity-optimized-prioritized-
La estrategia de asignación de priorización y optimización en función de la capacidad le permite especificar un valor de prioridad para cada tipo de instancia de su flota de instancias. Amazon EMR optimiza primero la capacidad, pero respeta las prioridades del tipo de instancia sobre la base del mejor esfuerzo, por ejemplo, si la prioridad no afecta significativamente la capacidad de la flota para aprovisionar una capacidad óptima. Recomendamos esta opción si tiene cargas de trabajo que deben tener una cantidad mínima de interrupciones y que aún requieren ciertos tipos de instancias. Si usa esta estrategia, debe configurar la prioridad para al menos un tipo de instancia. Si no configura una prioridad para ningún tipo de instancia, Amazon EMR asigna el valor de prioridad más bajo a ese tipo de instancia. Cada flota de instancias (principal, básica o de tarea) de un clúster puede tener un valor de prioridad diferente para un tipo de instancia determinado.
nota
Si utiliza la estrategia de On-Demand asignación priorizada, Amazon EMR aplica el mismo valor de prioridad tanto a su instancia como a On-Demand su instancia puntual cuando establece las prioridades.
diversified-
Con la estrategia de asignación diversificada, Amazon EC2 distribuye las instancias de spot entre todos los grupos de capacidad de spot.
lowest-price-
La estrategia de asignación de precios más bajos lanza instancias de spot desde el grupo de precios más bajos que tiene capacidad disponible. Si el grupo con el precio más bajo no tiene capacidad disponible, las instancias de spot provienen del siguiente grupo con el precio más bajo que tenga capacidad disponible. Si un grupo se queda sin capacidad antes de cubrir la capacidad deseada, la flota de Amazon EC2 extraerá capacidad del siguiente grupo con el precio más bajo para cumplir su solicitud. Para garantizar que se logre la capacidad deseada, es posible que reciba instancias de spot de varios grupos. Dado que esta estrategia solo tiene en cuenta el precio de la instancia y no la disponibilidad de capacidad, podría generar tasas de interrupción elevadas.
Permisos de estrategia de asignación
La opción de estrategia de asignación requiere varios permisos de IAM que se incluyen automáticamente en el rol de servicio predeterminado de Amazon EMR y en la política administrada de Amazon EMR (EMR_DefaultRole y AmazonEMRServicePolicy_v2). Si utiliza un rol de servicio o una política administrada personalizados para su clúster, debe agregar estos permisos antes de crear el clúster. Para obtener más información, consulte Permisos de estrategia de asignación.
Las reservas On-Demand de capacidad opcionales (ODCR) están disponibles cuando utiliza la opción de estrategia de On-Demand asignación. Las opciones de reserva de capacidad le permiten especificar una preferencia para utilizar primero la capacidad reservada para los clústeres de Amazon EMR. Puede utilizarlas para asegurarse de que sus cargas de trabajo críticas utilicen la capacidad que ya ha reservado mediante ODCR abiertas o específicas. En el caso de las cargas de trabajo que no son críticas, las preferencias de reserva de capacidad permiten especificar si se debe consumir la capacidad reservada.
Las reservas de capacidad solo las pueden utilizar instancias que tengan atributos coincidentes (tipo de instancia, plataforma, zona de disponibilidad). De forma predeterminada, Amazon EMR utiliza automáticamente las reservas de capacidad abiertas al aprovisionar On-Demand instancias que coinciden con los atributos de la instancia. Si no dispone de instancias en ejecución que coincidan con los atributos de reserva de capacidad, permanecen sin utilizar hasta que lanza una instancia que coincide con sus atributos. Si no desea utilizar ninguna reserva de capacidad al lanzar el clúster, debe establecer la preferencia de reserva de capacidad como ninguna en las opciones de lanzamiento.
Sin embargo, también puede dirigir una reserva de capacidad para cargas de trabajo específicas. Esto le permite controlar de manera explícita qué instancias pueden ejecutarse en esa capacidad reservada. 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
Permisos de IAM necesarios para una estrategia de asignación
Rol de servicio para Amazon EMR (rol de EMR)Necesita permisos adicionales para crear un clúster que utilice la opción de estrategia de asignación para On-Demand flotas de instancias puntuales.
Se incluyen automáticamente estos permisos en el rol de servicio predeterminado de Amazon EMR EMR_DefaultRole y en la política administrada de Amazon EMR AmazonEMRServicePolicy_v2.
Si utiliza un rol de servicio personalizado o una política administrada para su clúster, debe agregar los siguientes permisos:
Los siguientes permisos de rol de servicio son necesarios para crear un clúster que utilice reservas de capacidad abiertas o específicas. Debe incluir estos permisos además de los permisos necesarios para utilizar la opción de estrategia de asignación.
ejemplo Documento de política para las reservas de capacidad de los roles de servicio
Para utilizar reservas de capacidad abiertas, debe incluir los siguientes permisos adicionales.
ejemplo
Para utilizar reservas de capacidad específicas, debe incluir los siguientes permisos adicionales.
Configuración de flotas de instancias para su clúster
Ejemplos: creación de un clúster con la configuración de flotas de instancia
Los siguientes ejemplos muestran comandos create-cluster con una variedad de opciones que puede combinar.
nota
Si no ha creado con anterioridad el rol de servicio de Amazon EMR predeterminado y el perfil de instancia de EC2, utilice aws emr create-default-roles para crearlos antes de utilizar el comando create-cluster.
ejemplo Ejemplo: On-Demand principal, On-Demand núcleo con tipo de instancia única, VPC predeterminada
aws emr create-cluster --release-labelemr-5.3.1--service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']
ejemplo Ejemplo: VPC predeterminada, principal de spot, spot básica con tipo de instancia único
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \ InstanceFleetType=CORE,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
ejemplo Ejemplo: núcleo On-Demand principal mixto con un solo tipo de instancia y una única subred EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']
ejemplo Ejemplo: On-Demand principal, núcleo puntual con varios tipos de instancias ponderadas, tiempo de espera para el spot, rango de subredes de EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetSpotCapacity=11,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}
ejemplo Ejemplo: On-Demand principal, de núcleo mixto y de tareas con varios tipos de instancias ponderadas, tiempo de espera para las instancias puntuales principales, rango de subredes de EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \ InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']
ejemplo Ejemplo: spot principal, sin básicos ni de tareas, configuración de Amazon EBS, VPC predeterminada
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\ EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\ SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']
ejemplo Ejemplo: varias AMI personalizadas, varios tipos de instancias, principal bajo demanda, básico bajo demanda
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']
ejemplo Ejemplo: agregar un nodo de tarea a un clúster en ejecución con varios tipos de instancias y varias AMI personalizadas
aws emr add-instance-fleet --cluster-id j-123456 --release-label Amazon EMR 5.3.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleet \ InstanceFleetType=Task,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}',\ '{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']
ejemplo Ejemplo: utilizar un archivo de configuración JSON
Puede configurar parámetros de flota de instancias en un archivo JSON y, a continuación, hacer referencia al archivo JSON como único parámetro para las flotas de instancias. Por ejemplo, el siguiente comando hace referencia a un archivo de configuración JSON, :my-fleet-config.json
aws emr create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets file://my-fleet-config.json
El my-fleet-config.json archivo especifica las flotas de instancias principales, principales y de tareas, como se muestra en el siguiente ejemplo. La flota de instancias principales utiliza un precio spot máximo (BidPrice) como porcentaje del mismo On-Demand, mientras que las flotas de tareas y de instancia principal utilizan un precio spot máximo (BidPriceAsPercentageofOnDemandPrice) expresado en USD.
[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] } ]
Modificar capacidades de destino para una flota de instancias
Utilice el comando modify-instance-fleet para especificar nuevas capacidades de destino para una flota de instancias. Debe especificar el ID del clúster y el ID de la flota de instancias. Utilice el comando list-instance-fleets para recuperar los ID de la flota de instancias.
aws emr modify-instance-fleet --cluster-id<cluster-id>\ --instance-fleet \ InstanceFleetId='<instance-fleet-id>',TargetOnDemandCapacity=1,TargetSpotCapacity=1
Agregar una flota de instancias de tarea a un clúster
Si un clúster tiene únicamente flotas de instancias principales y básicas, puede utilizar el comando add-instance-fleet para agregar una flota de instancias de tarea. Solo puede utilizar esto para añadir las flotas de instancias de tareas.
aws emr add-instance-fleet --cluster-id<cluster-id>--instance-fleet \ InstanceFleetType=TASK,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
Obtener detalles de configuración de flotas de instancias en un clúster
Utilice el comando list-instance-fleets para obtener detalles de configuración de las flotas de instancias en un clúster. El comando toma un ID de clúster como entrada. El siguiente ejemplo muestra el comando y su salida de un clúster que contiene un grupo de instancias de tarea principal y un grupo de instancias de tarea básico. Para ver la sintaxis de respuesta completa, consulte ListInstanceFleetsla referencia de la API de Amazon EMR.
list-instance-fleets --cluster-id<cluster-id>
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m5.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }