Planifica y configura las flotas de instancias para tu clúster - 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.

Planifica y configura las flotas de instancias para tu clúster

nota

La configuración de las flotas de instancias solo está disponible en las EMR versiones 4.8.0 y posteriores de Amazon, excepto las 5.0.0 y 5.0.3.

La configuración de la flota de instancias para EMR los clústeres de Amazon le permite seleccionar una amplia variedad de opciones de aprovisionamiento para las EC2 instancias de Amazon y le ayuda a desarrollar una estrategia de recursos flexible y elástica para cada tipo de nodo de su clúster.

En una configuración de flota de instancias, debe especificar una capacidad de destino para las instancias bajo demanda y las instancias de spot dentro de cada flota. Cuando se lanza el clúster, Amazon EMR aprovisiona las instancias hasta que se cumplan los objetivos. Cuando Amazon EC2 recupera una instancia puntual de un clúster en ejecución debido a un aumento de precio o a un fallo de la instancia, 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.

Puedes especificar un máximo de cinco tipos de EC2 instancias de Amazon por flota para EMR que Amazon los utilice a la hora de cumplir los objetivos, o un máximo de 30 tipos de EC2 instancias de Amazon por flota cuando crees un clúster mediante AWS CLI o Amazon EMR API y una estrategia de asignación de instancias puntuales y bajo demanda.

También puede seleccionar varias subredes para distintas zonas de disponibilidad. Cuando Amazon EMR lanza el clúster, busca en esas subredes las instancias y las opciones de compra que especifiques. Si Amazon EMR detecta un AWS En un evento a gran escala en una o más de las zonas de disponibilidad, Amazon intenta EMR automáticamente desviar el tráfico de las zonas de disponibilidad afectadas e intenta 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

Ten en cuenta lo siguiente cuando utilices flotas de instancias con AmazonEMR.

  • Puede tener una flota de instancias, y solo una, por tipo de nodo (principal, básico, de tarea). Puedes especificar hasta cinco tipos de EC2 instancias de Amazon para cada flota del AWS Management Console (o un máximo de 30 tipos por flota de instancias al crear un clúster con AWS CLI o Amazon EMR API y unEstrategia de asignación para flotas de instancias).

  • Amazon EMR elige alguno o todos los tipos de EC2 instancias de Amazon especificados para aprovisionar con las opciones de compra puntual y bajo demanda.

  • Establezca las capacidades de destino para instancias de spot y bajo demanda para la flota de instancias básicas y de tarea. Usa v CPU o una unidad genérica asignada a cada EC2 instancia de Amazon que cuente para los objetivos. Amazon EMR aprovisiona instancias hasta que se alcance por completo cada capacidad objetivo. Para la flota principal, el destino es siempre uno.

  • Puede elegir una subred (zona de disponibilidad) o un intervalo. Si eliges un rango, Amazon EMR aprovisiona la capacidad en la zona de disponibilidad que mejor se adapte.

  • 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 instancias puntuales si el precio spot está por debajo del precio 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 no EMR puede aprovisionar capacidad puntual, puedes terminar el clúster o pasar a aprovisionar capacidad bajo demanda. 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 cambio de tamaño del clúster, las solicitudes de spot no aprovisionadas se anularán sin transferirse a la capacidad bajo demanda.

  • Para cada flota, puede especificar una de las siguientes estrategias de asignación para sus instancias puntuales: optimizadas en relación con la relación precio-capacidad, optimizadas para la capacidad, con el precio más bajo o capacity-optimized-prioritized diversificadas en todos los grupos.

  • Para cada flota, puede aplicar las siguientes estrategias de asignación para sus instancias bajo demanda: la estrategia de precio más bajo o la estrategia priorizada.

  • Para cada flota con instancias bajo demanda, puede optar por aplicar opciones de reserva de capacidad.

  • Si utiliza una estrategia de asignación, por ejemplo, las flotas, se deben tener en cuenta las siguientes consideraciones al elegir las subredes para el clústerEMR:

    • 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 EMR clúster solicitado. Esto incluye las direcciones IP necesarias para las flotas de instancias principales, principales y de tareas durante el lanzamiento del clúster. EMRLuego, Amazon 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 principales). En estos casos, la flota de instancias de tareas pasará a un estado suspendido, en lugar de terminar el clúster con un error.

    • Si ninguna de las subredes especificadas contiene direcciones IP suficientes para aprovisionar las flotas de instancias principales y principales esenciales, el lanzamiento del clúster fallará con un _. VALIDATION ERROR Esto desencadena un evento de terminación del clúster de CRITICALgravedad que le notifica que el clúster no se puede lanzar. Para evitar este problema, recomendamos aumentar el número de direcciones IP en las subredes.

  • Al lanzar instancias bajo demanda, puede usar 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 las instancias bajo demanda con una estrategia de asignación, por ejemplo, en las flotas. Le recomendamos 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 Utilizar reservas de capacidad con flotas de instancias.

Opciones de flota de instancias

Utilice las siguientes directrices para comprender las opciones de flota de instancia.

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. Al hacerlo, se determina el número de instancias bajo demanda 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 instancia bajo demanda, se tiene en cuenta para el destino bajo demanda. 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 utilizas la consola, las del tipo vCPUs de EC2 instancia de Amazon se utilizan como recuento de las capacidades de destino de forma predeterminada. Puede cambiarlo a unidades genéricas y, a continuación, especificar el recuento para cada tipo de EC2 instancia. Cuando usas el AWS CLI, se asignan manualmente unidades genéricas para cada tipo de instancia.

importante

Al elegir un tipo de instancia mediante el AWS Management Console, el número de v que CPU se muestra para cada tipo de instancia es el número de YARN núcleos virtuales de ese tipo de instancia, no el número de núcleos EC2 vCPUs de ese tipo de instancia. Para obtener más información sobre el número de instancias vCPUs para cada tipo de instancia, consulte Tipos de EC2 instancias de Amazon.

Para cada flota, especificas hasta cinco tipos de EC2 instancias de Amazon. Si utilizas un clúster Estrategia de asignación para flotas de instancias y lo creas mediante el AWS CLI o Amazon EMRAPI, puedes especificar hasta 30 tipos de EC2 instancias por flota de instancias. Amazon EMR elige cualquier combinación de estos tipos de EC2 instancias para cumplir con las capacidades objetivo. Como Amazon EMR quiere cubrir completamente la capacidad objetivo, podría producirse un exceso. Por ejemplo, si hay dos unidades no gestionadas y Amazon solo EMR puede aprovisionar una instancia con un recuento de cinco unidades, la instancia se seguirá aprovisionando, lo que significa que la capacidad objetivo se superará en tres unidades.

Si reduces la capacidad objetivo para cambiar el tamaño de un clúster en ejecución, Amazon EMR intenta completar las tareas de la aplicación y termina las instancias para cumplir con el nuevo objetivo. 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 configurar este precio como un porcentaje del precio bajo demanda o como un importe específico en dólares. Amazon EMR aprovisiona instancias puntuales si el precio spot actual en una zona de disponibilidad es inferior al precio puntual 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 instancias puntuales y bajo demanda con una asignación de capacidad optimizada. Esta opción de estrategia de asignación se puede configurar en la antigua AWS Management Console o utilizando el APIRunJobFlow. 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 utilizas el rol de EMR servicio de Amazon predeterminado y la política gestionada (EMR_DefaultRoleyAmazonEMRServicePolicy_v2) para el clúster, los permisos de la opción de estrategia de asignación ya están incluidos. Si no utilizas el rol de EMR servicio y la política gestionada predeterminados de Amazon, debes añadirlos para usar esta opción. Consulte Función de servicio para Amazon EMR (EMRfunción).

Para obtener más información sobre las instancias puntuales, consulte Instancias puntuales en la Guía del EC2 usuario de Amazon. Para obtener más información sobre las instancias bajo demanda, consulte Instancias bajo demanda en la Guía del EC2 usuario de Amazon.

Si opta por lanzar flotas de instancias bajo demanda con la estrategia de asignación con el precio más bajo, tiene la opción de utilizar las reservas de capacidad. Las opciones de reserva de capacidad se pueden configurar mediante Amazon EMR APIRunJobFlow. 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 utilizas flotas de instancias, puedes especificar varias EC2 subredes de Amazon dentro de unaVPC, cada una de las cuales corresponde a una zona de disponibilidad diferente. Si usas EC2 -Classic, especificas las zonas de disponibilidad de forma explícita. Amazon EMR identifica la mejor zona de disponibilidad para lanzar instancias de acuerdo con las especificaciones de tu flota. Las instancias se aprovisionan siempre en una única zona de disponibilidad. Puede seleccionar subredes privadas o subredes públicas, pero no puede mezclar las dos 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 seleccione bajo demanda o de spot para la flota de instancias principales, ya que se compone de una única 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 utiliza el AWS CLI, establézcalo siempre en 1 TargetSpotCapacity o, TargetOnDemandCapacity según proceda. 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 las instancias de spot o bajo demanda). Sin embargo, a diferencia de las flotas de instancias principales y de tareas, en las EMR que Amazon puede aprovisionar varias instancias de distintos tipos, Amazon EMR selecciona un único tipo de instancia para aprovisionar la flota de instancias principal.

Estrategia de asignación para flotas de instancias

Con EMR las versiones 5.12.1 y posteriores de Amazon, puede utilizar la opción de estrategia de asignación con instancias puntuales y bajo demanda para cada nodo del clúster. Al crear un clúster mediante el AWS CLI EMRAPI, Amazon o Amazon EMR console con una estrategia de asignación, puedes especificar hasta 30 tipos de EC2 instancias de Amazon por flota. Con la configuración predeterminada de la flota de instancias de EMR clúster de Amazon, 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.

Estrategia de asignación con instancias bajo demanda

Las siguientes estrategias de asignación están disponibles para sus instancias bajo demanda:

lowest-price (predeterminado)

La estrategia de asignación con el precio más bajo lanza las instancias bajo demanda desde el grupo con el precio más bajo que tenga capacidad disponible. Si el grupo de menor precio no tiene capacidad disponible, las instancias bajo demanda provienen del siguiente grupo de menor precio con capacidad disponible.

prioritized

La 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 instancias bajo demanda que tienen la máxima prioridad. Si usa esta estrategia, debe configurar la prioridad para al menos un tipo de instancia. Si no configuras 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, principal o tarea) de un clúster puede tener un valor de prioridad diferente para un tipo de instancia determinado.

nota

Si utilizas la estrategia de asignación capacity-optimized-prioritizedpuntual, Amazon EMR aplica las mismas prioridades tanto a las instancias bajo demanda como a las instancias puntuales cuando estableces 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 entre precio y capacidad suele tener más probabilidades de conseguir capacidad puntual y ofrece tasas de interrupción más bajas. Esta es la estrategia predeterminada para las EMR versiones 6.10.0 y posteriores de Amazon.

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 EMR versiones 6.9.0 y anteriores de Amazon.

capacity-optimized-prioritized

La estrategia capacity-optimized-prioritized de asignación 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 de los tipos de instancia haciendo todo lo posible, por ejemplo, si la prioridad no afecta significativamente a la capacidad de la flota para proporcionar una capacidad óptima. Te recomendamos esta opción si tienes cargas de trabajo que deben tener una cantidad mínima de interrupciones y, aun así, necesitas usar ciertos tipos de instancias. Si utilizas esta estrategia, debes configurar la prioridad para al menos un tipo de instancia. Si no configuras 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, principal o 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 prioritaria bajo demanda, Amazon EMR aplica el mismo valor de prioridad a las instancias bajo demanda y puntual al establecer las prioridades.

diversified

Con la estrategia de asignación diversificada, Amazon EC2 distribuye las instancias puntuales en todos los grupos de capacidad puntual.

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 cumplir con la capacidad solicitada, la EC2 flota de Amazon opta por el siguiente grupo con el precio más bajo para seguir gestionando tu 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 IAM permisos que se incluyen automáticamente en el rol de EMR servicio de Amazon predeterminado y en la política EMR gestionada por Amazon (EMR_DefaultRoleyAmazonEMRServicePolicy_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 de capacidad bajo demanda (ODCRs) opcionales están disponibles cuando se utiliza la opción de estrategia de asignación bajo demanda. Las opciones de reserva de capacidad te permiten especificar una preferencia para usar primero la capacidad reservada para EMR los clústeres de Amazon. Puede utilizarlas para asegurarse de que sus cargas de trabajo críticas utilicen la capacidad que ya ha reservado, ya sea abierta o ODCRs segmentada. 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 utiliza automáticamente las reservas de capacidad abiertas EMR al aprovisionar instancias bajo demanda que coincidan 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 más información sobre las reservas de capacidad bajo demanda, consulte Utilizar reservas de capacidad con flotas de instancias.

IAMPermisos necesarios para una estrategia de asignación

El Función de servicio para Amazon EMR (EMRfunción) necesita permisos adicionales para crear un clúster que utilice la opción de estrategia de asignación para flotas de instancias de spot o bajo demanda.

Incluimos automáticamente estos permisos en el rol de EMR servicio predeterminado de Amazon EMR_DefaultRoley en la política EMR gestionada por Amazon AmazonEMRServicePolicy_v2.

Si utiliza un rol de servicio personalizado o una política administrada para su clúster, debe agregar los siguientes permisos:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateLaunchTemplateVersion", "ec2:CreateFleet" ], "Resource": "*" } }

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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions" ], "Resource": "*" } ] }

Para utilizar reservas de capacidad específicas, debe incluir los siguientes permisos adicionales.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions", "resource-groups:ListGroupResources" ], "Resource": "*" } ] }

Configuración de flotas de instancias para su clúster

Console
Para crear un clúster con flotas de instancias con la consola
  1. Inicia sesión en AWS Management Console y abre la EMR consola de Amazon en https://console.aws.amazon.com/emr.

  2. EMREC2En el panel de navegación de la izquierda, selecciona Clústeres y, a continuación, selecciona Crear clúster.

  3. En Configuración del clúster, elija Flotas de instancias.

  4. En el caso de cada grupo de nodos, seleccione Agregar tipo de instancia y elija hasta 5 tipos de instancias para las flotas de instancias principales y básicas y hasta quince tipos de instancias para las flotas de instancias de tarea. Amazon EMR podría aprovisionar cualquier combinación de estos tipos de instancias al lanzar el clúster.

  5. En cada tipo de grupo de nodos, seleccione el menú desplegable Acciones situado junto a cada instancia para cambiar estas configuraciones:

    Añada EBS volúmenes

    Especifica EBS los volúmenes que deseas adjuntar al tipo de instancia después de que Amazon los EMR aprovisione.

    Edición de capacidad ponderada

    En el caso del grupo de nodos principales, cambie este valor a cualquier número de unidades que se adapte a sus aplicaciones. El número de unidades YARN vCores de capacidad ponderada de cada tipo de flota se utiliza como unidades de capacidad ponderada por defecto. No puede editar la capacidad ponderada del nodo principal.

    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 configurar este precio como un porcentaje del precio bajo demanda o como un importe específico en dólares. Si el precio spot actual en una zona de disponibilidad está por debajo de su precio spot máximo, Amazon EMR aprovisiona instancias puntuales. Solo tiene que pagar el precio de spot, que no es necesariamente el precio de spot máximo.

  6. Si lo desea, para añadir grupos de seguridad a sus nodos, expanda los grupos de EC2 seguridad (firewall) en la sección Redes y seleccione el grupo de seguridad para cada tipo de nodo.

  7. De manera opcional, seleccione la casilla situada junto a Aplicar estrategia de asignación si desea utilizar la opción de estrategia de asignación y seleccione la estrategia que desee especificar para las instancias de spot. No debes seleccionar esta opción si tu rol de EMR servicio de Amazon no tiene los permisos necesarios. Para obtener más información, consulte Estrategia de asignación para flotas de instancias.

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

  9. Para lanzar el clúster, elija Crear clúster.

AWS CLI

Para crear y lanzar un clúster con flotas de instancias con la AWS CLI, sigue estas pautas:

  • Para crear y lanzar un clúster con flotas de instancias, utilice el comando create-cluster junto con parámetros --instance-fleet.

  • Para obtener los detalles de configuración de las flotas de instancias en un clúster, utilice el comando list-instance-fleets.

  • Para añadir varios Amazon Linux personalizados AMIs a un clúster que esté creando, utilice la CustomAmiId opción con cada InstanceType especificación. Puede configurar los nodos de la flota de instancias con varios tipos de instancias y varios personalizados AMIs según sus necesidades. Consulte Ejemplos: creación de un clúster con la configuración de flotas de instancia.

  • Para realizar cambios en la capacidad de destino de una flota de instancias de destino, utilice el comando modify-instance-fleet.

  • Para añadir una flota de instancias de tareas a un clúster que no dispone de una, utilice el comando add-instance-fleet.

  • Se AMIs pueden añadir varias configuraciones personalizadas a la flota de instancias de la tarea mediante el CustomAmiId argumento del add-instance-fleet comando. Consulte Ejemplos: creación de un clúster con la configuración de flotas de instancia.

  • Para utilizar la opción de estrategia de asignación al crear una flota de instancias, actualice el rol de servicio para incluir el ejemplo del documento de política en la siguiente sección.

  • Para utilizar las opciones de reserva de capacidad al crear una flota de instancias con la estrategia de asignación bajo demanda, actualice el rol de servicio para incluir el ejemplo del documento de política en la siguiente sección.

  • Las flotas de instancias se incluyen automáticamente en el rol de EMR servicio predeterminado y en la política EMR gestionada por Amazon (EMR_DefaultRoleyAmazonEMRServicePolicy_v2). Si utiliza un rol de servicio personalizado o una política administrada personalizada para su clúster, debe agregar los nuevos permisos para la estrategia de asignación en la siguiente sección.

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 has creado previamente el rol de EMR servicio de Amazon y el perfil de EC2 instancia predeterminados, utilízalos aws emr create-default-roles para crearlos antes de usar el create-cluster comando.

ejemplo Ejemplo: principal bajo demanda, núcleo bajo demanda con un solo tipo de instancia, predeterminado VPC
aws emr create-cluster --release-label emr-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: primario puntual, núcleo puntual con tipo de instancia única, predeterminado VPC
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 primario mixto bajo demanda con un solo tipo de instancia y una sola EC2 subred
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: principal bajo demanda, núcleo puntual con varios tipos de instancias ponderadas, tiempo de espera para el spot, rango de subredes 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: principal bajo demanda, de núcleo mixto y de tareas con varios tipos de instancias ponderadas, tiempo de espera para las instancias puntuales principales, rango de subredes 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 núcleo ni tarea, EBS configuración de Amazon, predeterminada VPC
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: varios tipos de instancias personalizadasAMIs, varios tipos de instancias, principal bajo demanda, núcleo 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: añadir un nodo de tareas a un clúster en ejecución con varios tipos de instancias y varias personalizadas AMIs
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: utilice un archivo JSON de configuración

Puede configurar los parámetros de la flota de instancias en un JSON archivo y, a continuación, hacer referencia al JSON archivo como único parámetro para las flotas de instancias. Por ejemplo, el siguiente comando hace referencia a un archivo JSON de configuración: 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

La my-fleet-config.json El 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 de la demanda, mientras que las flotas de tareas y de instancia principal utilizan un precio spot máximo (BidPriceAsPercentageofOnDemandPrice) como complemento. 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. Use el list-instance-fleets comando para recuperar la flota IDs 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, consulta ListInstanceFleetsAmazon EMR API Reference.

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" } ] }