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

Puede 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 la AWS Management Console AWS CLI, o la API de Amazon EMR. 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 utilizar las instancias de Amazon EC2 recién aprovisionadas para alojar nodos en cuanto las instancias estén disponibles. Cuando se eliminan instancias, Amazon EMR finaliza las tareas de forma que no se interrumpan los trabajos y se protejan frente a 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

Puede utilizar la consola de Amazon EMR 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. Inicie sesión en la AWS Management Console consola Amazon EMR y ábrala en https://console.aws.amazon.com/emr.

  2. En EMR en EC2, en el panel de navegación izquierdo, elija Clústeres y seleccione el clúster que desee 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 decide reducir el tamaño de un grupo de instancias en ejecución, Amazon EMR seleccionará de forma inteligente las instancias que desee 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 Reducción vertical del clúster.

  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. Seleccione el tipo de instancia de Amazon EC2, introduzca el número de instancias del grupo de tareas y, a continuación, seleccione Agregar grupo de instancias de tareas para volver al panel Grupos de instancias de su 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 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 API AWS CLI o la misma. 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 la 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 del grupo de instancias de tareas de 3 a 4, escriba el siguiente comando y sustituya ig-31JXXXXXXBTO por 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 objeto JSON 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, escriba el siguiente comando y sustituya j-2AXXXXXXGAPLF por 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, necesita el ID del grupo de instancias (devuelto por el subcomando aws emr describe-cluster --cluster-id) y el ID de la instancia (devuelto por el subcomando aws emr list-instances --cluster-id); una vez que consiga dichos ID, escriba el comando siguiente, sustituya ig-6RXXXXXX07SA por el ID del grupo de instancias y sustituya i-f9XXXXf2 por 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 los comandos de Amazon EMR en AWS CLI, consulte. https://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 sustituya j-JXBXXXXXX37R por 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 sustituya j-JXBXXXXXX37R por 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 los comandos de Amazon EMR en AWS CLI, consulte. https://docs.aws.amazon.com/cli/latest/reference/emr

Interrupción de un cambio de tamaño

Si utiliza la versión 4.1.0 o posterior de Amazon EMR, 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 a través de la llamada a la API ModifyInstanceGroups con el recuento actual como el recuento de destino 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).

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

Dado que este proceso es asíncrono, es posible que vea que los recuentos de instancias cambian con respecto las solicitudes de la API previas antes de que se realicen las solicitudes siguientes. 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 devuelven error repetidamente al llevar a cabo acciones de arranque, el grupo de instancias pasa al estado SUSPENDED, en lugar de aprovisionar de forma continua nuevos nodos. 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 una instancia grupo indica a Amazon EMR que vuelva a intentar aprovisionar los nodos. 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 subcomando. describe-cluster Si Amazon EMR detecta un error con un grupo de instancias, cambia el estado del grupo a SUSPENDED.

Para restablecer un clúster en estado SUSPENDIDO con el 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 información sobre todas las instancias y los grupos de instancias de un clúster, escriba el siguiente comando y sustituya j-3KVXXXXXXY7UG por 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 decide reducir el tamaño de un clúster en ejecución, tenga en cuenta el comportamiento y las prácticas recomendadas de Amazon EMR siguientes:

  • Para reducir el impacto en los trabajos en curso, Amazon EMR selecciona de forma inteligente las instancias que se van a eliminar. Para más información sobre el comportamiento de reducción vertical del clúster, consulte Terminación al completar las tareas en la Guía de administración de Amazon EMR.

  • Al reducir verticalmente 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 retirar HDFS en las instancias del grupo. Antes de reducir el tamaño de un clúster, le recomendamos que minimice las E/S de escritura en HDFS.

  • 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.