Reducción vertical del 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.

Reducción vertical del clúster

nota

Las opciones de comportamiento de reducción vertical ya no se admiten desde la versión 5.10.0 de Amazon EMR. Debido a la introducción de la facturación por segundo en Amazon EC2, el comportamiento predeterminado de reducción vertical para los clústeres de Amazon EMR ahora es terminarse al completar las tareas.

Con las versiones de 5.1.0 a 5.9.1 de Amazon EMR, existen dos opciones para el comportamiento de reducción vertical: terminarse en el límite de instancia por hora para la facturación de Amazon EC2 o terminarse al completar las tareas. A partir de la versión 5.10.0 de Amazon EMR, la configuración para la terminación en el límite por instancia y hora ha quedado obsoleta debido a la introducción de la facturación por segundo de Amazon EC2. No recomendamos especificar la terminación en el límite por instancia y hora en las versiones en las que la opción está disponible.

aviso

Si utilizas el AWS CLI para emitir un modify-instance-groupsEC2InstanceIdsToTerminate, estas instancias se cancelarán inmediatamente, sin tener en cuenta esta configuración e independientemente del estado de las aplicaciones que se estén ejecutando en ellas. Terminar una instancia de esta forma conlleva el riesgo de pérdida de datos y de un comportamiento del clúster imprevisible.

Cuando se especifica la terminación al completar la tarea, Amazon EMR envía a la lista negra y vacía las tareas de los nodos antes de terminar las instancias de Amazon EC2. Sea cual sea el comportamiento especificado, Amazon EMR no termina las instancias de Amazon EC2 de los grupos de instancias principales si ello puede dar lugar a que se dañen los datos de HDFS.

Terminación al completar las tareas

Amazon EMR le permite reducir verticalmente el clúster sin que ello afecte a su carga de trabajo. Amazon EMR retira con gracia YARN, HDFS y otros daemons en nodos principales y de tarea durante una operación de reducción de tamaño sin perder datos o interrumpir trabajos. Amazon EMR solo reduce el tamaño de los grupos de instancias si el trabajo asignados a los grupos se ha completado y están inactivos. En el caso de YARN NodeManager Graceful Decommission, puedes ajustar manualmente el tiempo que espera un nodo para su desmantelamiento.

Este tiempo se establece mediante una propiedad de la clasificación de configuración YARN-site. Si utiliza la versión 5.12.0 o una posterior de Amazon EMR, especifique la propiedad YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs. Si utiliza versiones anteriores de Amazon EMR, especifique la propiedad YARN.resourcemanager.decommissioning.timeout.

Si sigue habiendo contenedores en ejecución en aplicaciones YARN cuando transcurre el tiempo de espera de retirada, se obliga la retirada del nodo y las reprogramaciones de YARN afectan a contenedores de otros nodos. El valor predeterminado es de 3 600 segundos (una hora). Puede definir este tiempo de espera con un valor arbitrariamente alto para obligar a que la reducción con gracia espere más. Para obtener más información, consulte Graceful Decommission of YARN Nodes en la documentación de Apache Hadoop.

Grupos de nodos de tarea

Amazon EMR selecciona de manera inteligente las instancias que no tienen tareas ejecutándose en ningún paso o aplicación y las elimina de un clúster en primer lugar. Si se están utilizando todas las instancias del clúster, Amazon EMR espera a que las tareas se completen en una instancia antes de eliminarla del clúster. El tiempo de espera predeterminado es de 1 hora. Este valor se puede cambiar con la configuración YARN.resourcemanager.decommissioning.timeout. Amazon EMR utiliza de forma dinámica la nueva configuración. Puede establecerlo en un número arbitrariamente grande para garantizar que Amazon EMR no termine ninguna tarea y, al mismo tiempo, reduzca el tamaño del clúster.

Grupos de nodos principales

En los nodos principales, los DataNode daemons YARN NodeManager y HDFS deben estar fuera de servicio para que el grupo de instancias se reduzca. Para YARN, la reducción con gracia garantiza que un nodo marcado para retirada solo pase al estado DECOMMISSIONED si no hay contenedores o aplicaciones pendientes o incompletos. La retirada finaliza de inmediato si no hay contenedores en ejecución en el nodo al principio de la retirada.

Para HDFS, la reducción con gracia garantiza que la capacidad de destino de HDFS sea lo suficientemente grande como para adaptarse a todos los bloques existentes. Si la capacidad de destino no es lo suficientemente grande, solo una cantidad parcial de las instancias secundarios se retiran de forma que los nodos restantes pueden gestionar los datos actuales residentes en HDFS. Debe garantizar una capacidad de HDFS adicional para permitir una retirada adicional. También debes intentar minimizar las E/S de escritura antes de intentar reducir los grupos de instancias. Un exceso de E/S de escritura puede retrasar la terminación de la operación de cambio de tamaño.

Otro límite es el factor de replicación predeterminado, dfs.replication dentro de /etc/hadoop/conf/hdfs-site. Cuando crea un clúster, Amazon EMR configura el valor en función del número de instancias en el clúster: 1 con 1-3 instancias, 2 para clústeres con 4-9 instancias y 3 para clústeres con 10 o más instancias.

aviso
  1. Establecer dfs.replication en 1 en clústeres con menos de cuatro nodos puede conllevar la pérdida de datos del HDFS si un solo nodo deja de funcionar. Se recomienda que utilice un clúster con al menos cuatro nodos principales para las cargas de trabajo de producción.

  2. Amazon EMR no permitirá que los clústeres escalen los nodos principales por debajo de dfs.replication. Por ejemplo, si dfs.replication = 2, el número mínimo de nodos principales es 2.

  3. Cuando utiliza el escalado administrado, el escalado automático o decide cambiar el tamaño del clúster manualmente, se recomienda que establezca dfs.replication en 2 o más.

La reducción con gracia no permite reducir los nodos principales por debajo del factor de replicación de HDFS. Esto permite que HDFS cierre archivos debido a la falta de réplicas. Para evitar este límite, reduce el factor de replicación y reinicia el daemon. NameNode

Configurar el comportamiento de reducción vertical de Amazon EMR

nota

La opción de comportamiento de reducción vertical con terminación de la instancia después de la hora ya no es compatible con la versión 5.10.0 y posteriores de Amazon EMR. Las siguientes opciones de comportamiento de reducción vertical solo aparecen en la consola de Amazon EMR para las versiones de 5.1.0 a 5.9.1.

Puede usar la AWS Management Console API Amazon EMR o la API de Amazon EMR para configurar el comportamiento de reducción al crear un clúster. AWS CLI

Console
Para configurar el comportamiento de reducción vertical 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 situado en el panel de navegación izquierdo, elija Clústeres y, a continuación, elija Crear clúster.

  3. En la sección de opciones de escalado y aprovisionamiento de clústeres, elija Usar escalado automático personalizado. En Políticas de escalado automático personalizadas, pulsa el botón de acción más para añadir las políticas de escalado. Le recomendamos que añada políticas de escalabilidad interna y horizontal. Al agregar solo un conjunto de políticas, Amazon EMR solo realizará un escalado unidireccional y usted tendrá que realizar las demás acciones manualmente.

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

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

AWS CLI
Para configurar el comportamiento de reducción de escala con el AWS CLI
  • Use la opción --scale-down-behavior para especificar TERMINATE_AT_INSTANCE_HOUR o TERMINATE_AT_TASK_COMPLETION.