He activado el escalamiento administrado o se cumplen las métricas de redimensionamiento, pero mi clúster de EMR no se escala.
Resolución
No se cumplen los umbrales establecidos en las métricas de Amazon CloudWatch para el escalamiento
El escalamiento automático depende de las métricas de Amazon CloudWatch. Si no se alcanzan los umbrales de métricas correspondientes para escalar o desescalar verticalmente, el escalamiento no se produce.
Comprueba las métricas de Amazon EMR en Amazon CloudWatch para comprobar que las métricas definidas en tus reglas de escalamiento, como ContainerPendingRatio y YARNMemoryAvailablePercentage, se rellenan.
Es posible que las métricas de Amazon EMR no se rellenen según lo esperado en CloudWatch por uno de los siguientes motivos:
Usas aplicaciones que no están basadas en YARN
Las aplicaciones como Presto que no se basan en YARN utilizan métodos de escalamiento basados en las métricas generadas por YARN. Por lo tanto, los clústeres no escalarán aunque la utilización de las consultas de Presto sea alta. Si usas aplicaciones que no están basadas en YARN, utiliza el escalamiento manual. Por ejemplo, puedes configurar la API de cambio de tamaño de Amazon EMR para que utilice métricas de Presto personalizadas.
Los grupos de instancias principales o de tareas se encuentran suspendidos o detenidos
Los grupos de instancias principales o de tareas que están suspendidos o detenidos quedan bloqueados cuando cambian de tamaño o escalan. Para obtener más información, consulta Estado suspendido.
Las reconfiguraciones pueden provocar que los grupos de instancias pasen a un estado de detención. Para obtener más información, consulta Solución de problemas de reconfiguración de grupos de instancias.
Hay problemas con las aplicaciones de HDFS en Amazon EMR que causan problemas al escalar los nodos centrales
Si se cumplen las dos condiciones siguientes, se recomienda mantener fijos los nodos centrales:
- Almacenas datos en buckets de Amazon Simple Storage Service (Amazon S3).
- La utilización del sistema de archivos distribuido de Hadoop (HDFS) es mínima.
Nota: Se recomienda escalar los nodos de tarea únicamente para evitar problemas con HDFS.
Se tarda más en escalar los nodos centrales que en escalar los nodos de tarea. Esto se debe a que los nodos centrales tienen un servicio adicional (Datanode) que se usa para almacenar los datos de HDFS. El desmantelamiento de los datos de HDFS lleva tiempo. Si tu caso de uso requiere el escalamiento del nodo central y el escalamiento está bloqueado, es posible que haya un problema con el desmantelamiento de HDFS.
Para solucionar los problemas de escalamiento que se ha quedado bloqueado debido al desmantelamiento de HDFS, lleva a cabo las siguientes acciones:
- Comprueba el estado de los servicios de HDFS (Namenode y Datanode).
- Ejecuta el comando hdfs dfsadmin -report para comprobar si falta algún bloque, está dañado o no está replicado.
- Comprueba si hay algún nodo central que no esté en buen estado debido a problemas con el disco, la memoria o la CPU.
- Comprueba si has establecido el factor de replicación de HDFS en un número alto, como 3 o 2. Si intentas reducir el nodo central a 1 cuando el factor de replicación está establecido en 3 o 2, la operación de escalamiento se bloquea. Esto se debe a que Amazon EMR debe mantener el número mínimo de réplicas.
La capacidad solicitada no está disponible en Amazon EMR
Si la capacidad solicitada de Amazon Elastic Compute Cloud (Amazon EC2) no está disponible en Amazon EMR, el escalamiento fallará una vez transcurrido el periodo de espera. Si el escalamiento permanece bloqueado durante más de 2 o 3 horas y recibes errores de capacidad insuficiente en los eventos de AWS CloudTrail, realiza un cambio de tamaño manual.
Información relacionada
Uso del escalamiento automático con una política personalizada para grupos de instancias en Amazon EMR
Cambio manual del tamaño de un clúster de Amazon EMR en ejecución
Uso del escalamiento administrado en Amazon EMR
Top 9 performance tuning tips for PrestoDB on Amazon EMR (Los 9 mejores consejos para ajustar el rendimiento de PrestoDB en Amazon EMR)