Opciones de reducción vertical de clústeres para clústeres de Amazon EMR - Amazon EMR

Opciones de reducción vertical de clústeres para clústeres de Amazon EMR

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 utiliza la AWS CLI para emitir un comando modify-instance-groups con EC2InstanceIdsToTerminate, estas instancias se terminan de forma inmediata, sin tener en cuenta estos ajustes e independientemente del estado de las aplicaciones que se ejecutan 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 intenta retirar de manera gradual 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. Para la retirada con gracia de NodeManager de YARN, puede ajustar manualmente el tiempo que un nodo espera para la retirada.

nota

Cuando se produce una retirada gradual, puede generarse una pérdida de datos. Asegúrese de hacer una copia de seguridad de los datos.

importante

Es posible que los datos de HDFS se pierdan de forma permanente al aplicar la sustitución gradual a una instancia principal en mal estado. Le recomendamos que haga copias de seguridad de sus datos en todo momento.

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, tanto los daemons NodeManager de YARN y DataNode de HDFS se deben retirar 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, reduzca el factor de replicación y reinicie el daemon NameNode.