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.
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 subcomandodescribe-cluster
. La salida es un JSON objeto denominadoCluster
que contiene el ID de cada grupo de instancias. Para utilizar este comando, necesita el ID del clúster (que puede recuperar con el comandoaws emr list-clusters
o la consola). Para recuperar el ID del grupo de instancias, escribe el siguiente comando y reemplazaj-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 elaws emr list-instances --cluster-id
subcomando). Escribe el siguiente comando y reemplazaig-6RXXXXXX07SA
por el ID del grupo de instancias y reemplázaloi-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.
-
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
-
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).
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=10La 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 estadoSUSPENDED
. El subcomandodescribe-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.