Cambiar manualmente el tamaño de un clúster de Amazon EMR en ejecución - 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.

Cambiar manualmente el tamaño de un clúster de Amazon EMR en ejecución

Puedes añadir y eliminar instancias de los grupos de instancias principales y de tareas y de las flotas de instancias de un clúster en ejecución con AWS Management Console AWS CLI, o Amazon EMRAPI. Si un clúster utiliza grupos de instancias, es necesario cambiar de forma explícita el recuento de instancias. Si el clúster utiliza flotas de instancias, puede cambiar las unidades de destino en las instancias bajo demanda y las instancias de spot. A continuación, la flota de instancias añadirá y eliminará instancias para satisfacer los requisitos del nuevo destino. Para obtener más información, consulte Opciones de flota de instancias. Las aplicaciones pueden usar EC2 instancias de Amazon recién aprovisionadas para alojar nodos en cuanto las instancias estén disponibles. Cuando se eliminan las instancias, Amazon EMR cierra las tareas de forma que no se interrumpan las tareas y las protege contra la pérdida de datos. Para obtener más información, consulte Terminación al completar las tareas.

Cambiar el tamaño de un clúster con la consola

Puedes usar la EMR consola de Amazon para cambiar el tamaño de un clúster en ejecución.

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

  2. EMREC2En el panel de navegación izquierdo, selecciona Clústeres y selecciona el clúster que deseas actualizar. El clúster debe estar en ejecución; no puede cambiar el tamaño de un clúster que se esté aprovisionando o se haya terminado.

  3. En la pestaña Instancias de la página de detalles del clúster, observe el panel Grupos de instancias.

  4. Para cambiar el tamaño de un grupo de instancias existente, selecciona el botón de opción situado junto al grupo de instancias principales o de tarea cuyo tamaño desee cambiar y, a continuación, seleccione Cambiar el tamaño del grupo de instancias. Especifique el nuevo número de instancias para el grupo de instancias y, a continuación, seleccione Cambiar tamaño.

    nota

    Si decides reducir el tamaño de un grupo de instancias en ejecución, Amazon EMR seleccionará de forma inteligente las instancias que quieres eliminar del grupo para reducir al mínimo la pérdida de datos. Para tener un control más detallado de la acción de cambio de tamaño, puede seleccionar el ID del grupo de instancias, seleccionar las instancias que desea eliminar y, a continuación, utilizar la opción Terminar. Para obtener más información sobre el comportamiento inteligente de reducción vertical, consulte Opciones de escalado descendente de clústeres para los clústeres de Amazon EMR.

  5. Si desea cancelar la acción de cambio de tamaño, puede seleccionar el botón de opción de un grupo de instancias con el estado Cambiando el tamaño y, a continuación, seleccionar Detener el cambio de tamaño en la lista de acciones.

  6. Para agregar uno o más grupos de instancias de tarea al clúster en respuesta al aumento de la carga de trabajo, seleccione Agregar grupo de instancias de tareas en la lista de acciones. Elige el tipo de EC2 instancia de Amazon, introduce el número de instancias del grupo de tareas y, a continuación, selecciona Añadir grupo de instancias de tareas para volver al panel Grupos de instancias de tu clúster.

Cuando se realiza un cambio en el número de nodos, se actualiza el Status (Estado) de las actualizaciones del grupo de instancias. Cuando finaliza el cambio solicitado, el Status (Estado) es Running (En ejecución).

Cambie el tamaño de un clúster con la AWS CLI

Puede utilizar el AWS CLI para cambiar el tamaño de un clúster en ejecución. Puede aumentar o reducir el número de nodos de tareas y puede aumentar el número de nodos secundarios en un clúster en ejecución. También es posible cerrar una instancia del grupo de instancias principal con la AWS CLI o laAPI. Esto debe hacerse con precaución. Apagar una instancia en el grupo de instancias secundarias conlleva un riesgo de pérdida de datos y la instancia no se sustituye automáticamente.

Además de cambiar el tamaño de los grupos se instancias secundarias y de tareas, también puede agregar uno o varios grupos de instancias de tareas a un clúster en ejecución con la AWS CLI.

Para cambiar el tamaño de un clúster cambiando el recuento de instancias con el AWS CLI

Puede añadir instancias al grupo principal o al grupo de tareas y eliminar instancias del grupo de tareas con el AWS CLI modify-instance-groups subcomando del InstanceCount parámetro. Para agregar instancias a los grupos de instancias principales o de tareas, aumente el InstanceCount. Para reducir el número de instancias en el grupo de tareas, reduzca el InstanceCount. Al cambiar el recuento de instancias del grupo de tareas a 0 se eliminan todas las instancias, pero no el grupo de instancias.

  • Para aumentar el número de instancias en el grupo de instancias de tareas de 3 a 4, escribe el siguiente comando y reemplaza ig-31JXXXXXXBTO con el ID del grupo de instancias.

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-31JXXXXXXBTO,InstanceCount=4

    Para recuperar el InstanceGroupId, utilice el subcomando describe-cluster. La salida es un JSON objeto denominado Cluster que contiene el ID de cada grupo de instancias. Para utilizar este comando, necesita el ID del clúster (que puede recuperar con el comando aws emr list-clusters o la consola). Para recuperar el ID del grupo de instancias, escribe el siguiente comando y reemplaza j-2AXXXXXXGAPLF con el ID del clúster.

    aws emr describe-cluster --cluster-id j-2AXXXXXXGAPLF

    Con el AWS CLI, también puedes terminar una instancia del grupo de instancias principal con el --modify-instance-groups subcomando.

    aviso

    Debe prestarse especial atención cuando se especifique EC2InstanceIdsToTerminate. Las instancias se terminan de forma inmediata, independientemente del estado de las aplicaciones que se ejecutan en ellas y de que la instancia no se sustituya automáticamente. Esto ocurre independientemente de la configuración de Scale down behavior (Comportamiento de escalado descendente) del clúster. Terminar una instancia de esta forma conlleva el riesgo de pérdida de datos y de un comportamiento del clúster imprevisible.

    Para terminar una instancia específica, necesitas el ID del grupo de instancias (devuelto por el aws emr describe-cluster --cluster-id subcomando) y el ID de instancia (devuelto por el aws emr list-instances --cluster-id subcomando). Escribe el siguiente comando y reemplaza ig-6RXXXXXX07SA por el ID del grupo de instancias y reemplázalo i-f9XXXXf2 con el ID de la instancia.

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-6RXXXXXX07SA,EC2InstanceIdsToTerminate=i-f9XXXXf2

    Para obtener más información sobre el uso de EMR los comandos de Amazon en AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Para cambiar el tamaño de un clúster añadiendo grupos de instancias de tareas con la AWS CLI

Con el AWS CLI, puedes añadir de 1 a 48 grupos de instancias de tareas a un clúster con el --add-instance-groups subcomando. Los grupos de instancias de tareas solo se pueden agregar a un clúster que contenga un grupo de instancias principales y un grupo de instancias de núcleo. Al utilizar el subcomando AWS CLI, puede añadir hasta cinco grupos de instancias de tareas cada vez que utilice el --add-instance-groups subcomando.

  1. Para añadir un único grupo de instancias de tareas a un clúster, escriba el siguiente comando y reemplace j-JXBXXXXXX37R con el ID del clúster.

    aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge
  2. Para añadir varios grupos de instancias de tareas a un clúster, escriba el siguiente comando y reemplace j-JXBXXXXXX37R con el ID del clúster. Puede añadir hasta cinco grupos de instancias de tareas en un solo comando.

    aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge InstanceCount=10,InstanceGroupType=task,InstanceType=m5.xlarge

    Para obtener más información sobre el uso de EMR los comandos de Amazon en AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.

Interrupción de un cambio de tamaño

Con la EMR versión 4.1.0 o posterior de Amazon, puede realizar un cambio de tamaño en medio de una operación de cambio de tamaño existente. Además, puede parar una solicitud de cambio de tamaño enviada previamente o enviar una nueva solicitud para anular una solicitud anterior sin necesidad de esperar a que finalice. También puede detener un cambio de tamaño existente desde la consola o utilizando la ModifyInstanceGroups API llamada con el recuento actual como número objetivo del clúster.

La siguiente captura de pantalla muestra un grupo de instancias de tareas que se está cambiando de tamaño, pero que puede interrumpirse eligiendo Stop (Detener).

Task instance group showing resizing status with options to resize or stop.
Para interrumpir un cambio de tamaño con el AWS CLI

Puede utilizar el AWS CLI para detener un cambio de tamaño con el modify-instance-groups subcomando. Supongamos que tiene seis instancias en un grupo de instancias y que desea aumentarlo a 10. Más tarde decide que desea cancelar esta solicitud:

  • La solicitud inicial:

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=10

    La segunda solicitud para detener la primera solicitud:

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=6
nota

Como este proceso es asíncrono, es posible que el número de instancias cambie con respecto a las API solicitudes anteriores antes de que se atiendan las solicitudes posteriores. En el caso de disminución, es posible que si tiene el trabajo en ejecución en los nodos, el grupo de instancias podría no reducirse hasta que los nodos hayan completado su trabajo.

Estado de suspensión

Un grupo de instancias pasa a estado suspendido si se encuentra demasiados errores al intentar iniciar los nuevos nodos del clúster. Por ejemplo, si los nodos nuevos fallan al realizar acciones de arranque, el grupo de instancias pasa a un SUSPENDEDestado en lugar de aprovisionar nuevos nodos de forma continua. Después de haber resuelto el error subyacente, restablezca el número deseado de nodos en el grupo de instancias del clúster y, a continuación, el grupo de instancias reanuda la asignación de nodos. La modificación de un grupo de instancias indica EMR a Amazon que intente aprovisionar nodos de nuevo. Ningún nodo en ejecución se reinicia ni se termina.

En el AWS CLI, el list-instances subcomando devuelve todas las instancias y sus estados, al igual que el describe-cluster subcomando. Si Amazon EMR detecta un error en un grupo de instancias, cambia el estado del grupo aSUSPENDED.

Para restablecer un clúster en un SUSPENDED estado con AWS CLI

Escriba el subcomando describe-cluster con el parámetro --cluster-id para ver el estado de las instancias en el clúster.

  • Para ver la información sobre todas las instancias y grupos de instancias de un clúster, escribe el siguiente comando y reemplaza j-3KVXXXXXXY7UG con el ID del clúster.

    aws emr describe-cluster --cluster-id j-3KVXXXXXXY7UG

    La salida muestra información sobre los grupos de la instancia y el estado de las instancias:

    { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1413187781.245, "CreationDateTime": 1413187405.356 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "Ec2InstanceAttributes": { "Ec2AvailabilityZone": "us-west-2b" }, "Name": "Development Cluster", "Tags": [], "TerminationProtected": false, "RunningAmiVersion": "3.2.1", "NormalizedInstanceHours": 16, "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187775.749, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge", "Id": "ig-3ETXXXXXXFYV8", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187781.301, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "CORE", "InstanceGroupType": "CORE", "InstanceType": "m5.xlarge", "Id": "ig-3SUXXXXXXQ9ZM", "Market": "ON_DEMAND", "RunningInstanceCount": 1 } ... }

    Para ver información sobre un grupo de instancias determinado, escriba el subcomando list-instances con los parámetros --cluster-id e --instance-group-types. Puede consultar información para los grupos principales, de núcleo o de tarea.

    aws emr list-instances --cluster-id j-3KVXXXXXXY7UG --instance-group-types "CORE"

    Utilice el subcomando modify-instance-groups con el parámetro --instance-groups para restablecer un clúster en el estado SUSPENDED. El subcomando describe-cluster devuelve el id del grupo de instancias.

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-3SUXXXXXXQ9ZM,InstanceCount=3

Consideraciones a la hora de reducir el tamaño del clúster

Si decides reducir el tamaño de un clúster en ejecución, ten en cuenta el siguiente EMR comportamiento y prácticas recomendadas de Amazon:

  • Para reducir el impacto en los trabajos en curso, Amazon selecciona de EMR forma inteligente las instancias que se van a eliminar. Para obtener más información sobre el comportamiento de la reducción de escala de los clústeres, consulta Terminación al completar las tareas la Amazon EMR Management Guide.

  • Al reducir el tamaño de un clúster, Amazon EMR copia los datos de las instancias que elimina a las instancias restantes. Asegúrese de que haya suficiente capacidad de almacenamiento para estos datos en las instancias que permanecen en el grupo.

  • Amazon EMR intenta desmantelar HDFS las instancias del grupo. Antes de reducir el tamaño de un clúster, le recomendamos que minimice la E/S de HDFS escritura.

  • Para tener un control más detallado a la hora de reducir el tamaño de un clúster, puede ver el clúster en la consola y acceder a la pestaña Instancias. Seleccione el ID del grupo de instancias cuyo tamaño desee cambiar. A continuación, use la opción Terminar para las instancias específicas que desee eliminar.