Sustitución de nodos en mal estado con Amazon EMR - Amazon EMR

Sustitución de nodos en mal estado con Amazon EMR

Amazon EMR utiliza periódicamente el servicio de comprobación de estado de NodeManager en Apache Hadoop para monitorizar los estados de los nodos básicos de sus clústeres de Amazon EMR en Amazon EC2. Si un nodo no funciona de forma adecuada, Amazon EMR lo marca como en mal estado, y el verificador de estado informa el nodo al controlador de Amazon EMR. El controlador de Amazon EMR agrega ese nodo a una lista de denegación para impedir que reciba nuevas aplicaciones de YARN hasta que su estado mejore.

nota

Una causa frecuente de un nodo en mal estado es la falta de espacio en disco. Para obtener más información sobre cuándo un nodo principal casi se queda sin espacio en disco, consulte el siguiente artículo del Centro de conocimientos de re:Post: Why is the core node in my Amazon EMR cluster running out of disk space?.

nota

Hadoop permite ejecutar comprobaciones de estado personalizadas para los nodos. La documentación de Apache Hadoop ofrece más detalles en NodeManager.

Puede elegir si Amazon EMR debe finalizar los nodos en mal estado o mantenerlos en el clúster. Si desactiva el reemplazo de nodos en mal estado, estos permanecen en la lista de denegación y siguen contando dentro de la capacidad del clúster. Aún así, puede conectarse a una instancia principal de Amazon EC2 para la configuración y recuperación, así como cambiar el tamaño del clúster si necesita más capacidad. Para obtener más información sobre cómo funcionan el reemplazo y la terminación de nodos, consulte Using termination protection.

Si habilita el reemplazo de nodos en mal estado, Amazon EMR termina el nodo principal afectado y aprovisiona una instancia nueva, según la cantidad definida en el grupo de instancias o la capacidad objetivo configurada en flotas de instancias. Si uno o varios nodos permanecen en mal estado durante más de 45 minutos, Amazon EMR sustituirá los nodos de forma gradual. Si la retirada gradual de un nodo no concluye en una hora, Amazon EMR termina la instancia de manera forzada, a menos que hacerlo reduzca el clúster por debajo del factor de replicación o de los requisitos de capacidad de HDFS.

importante

Tenga en cuenta que el tiempo necesario para completar la retirada gradual o la terminación de un nodo puede variar.

Aunque el reemplazo de nodos en mal estado reduce de manera significativa el riesgo de pérdida de datos, no elimina el riesgo por completo. Los datos de HDFS pueden perderse de forma permanente al aplicar la sustitución gradual a una instancia principal en mal estado. Le recomendamos mantener copias de seguridad de sus datos en todo momento.

Para obtener más información sobre cómo identificar y recuperar los nodos en mal estado, consulte Errores de recursos. Además, si desea consultar más prácticas recomendadas para conservar el buen estado de un clúster, revise la documentación correspondiente al error de recursos El clúster de Amazon EMR finaliza con NO_SLAVE_LEFT y los nodos básicos FAILED_BY_MASTER.

Amazon EMR publica Amazon CloudWatch Events para la sustitución de nodos en mal estado, de modo que pueda realizar un seguimiento de lo que sucede con sus instancias principales en mal estado. Para obtener más información, consulte los eventos de sustitución de nodosen mal estado.

Configuración predeterminada de protección de reemplazo y finalización de nodos

La sustitución de nodos en mal estado está disponible en todas las versiones de Amazon EMR, pero la configuración predeterminada depende de la etiqueta de versión que elija. Puede cambiar cualquiera de estos ajustes configurando la sustitución de nodos en mal estado al crear un nuevo clúster o pasando a la configuración del clúster en cualquier momento.

Si va a crear un clúster de un solo nodo o un clúster de alta disponibilidad que ejecute Amazon EMR en su versión 7.0 o anteriores, la configuración predeterminada de sustitución de nodos en mal estado depende de la protección de finalización:

  • Al habilitar la protección de finalización, se deshabilita la sustitución de nodos en mal estado.

  • La deshabilitación de la protección de finalización permite sustituir los nodos en mal estado.

Configuración de la sustitución de nodos en mal estado al lanzar un clúster

Puede habilitar o deshabilitar la sustitución de un nodo en mal estado al lanzar un clúster con la consola, la AWS CLI o la API.

La configuración predeterminada de sustitución de nodos en mal estado depende de cómo se lance el clúster:

  • Consola Amazon EMR: la sustitución de nodos en mal estado está habilitada de forma predeterminada.

  • AWS CLI aws emr create-cluster: la sustitución de nodos en mal estado está habilitada de forma predeterminada, a menos que usted especifique --no-unhealthy-node-replacement.

  • Comando de la API RunJobFlow de Amazon EMR: la sustitución de nodos en mal estado está habilitada de forma predeterminada, a menos que establezca el valor booleano UnhealthyNodeReplacement en True o False.

Console
Para activar o desactivar la sustitución de nodos en mal estado al crear un clúster con la consola
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EMR 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. Para la versión de lanzamiento de EMR, elija la etiqueta de versión de Amazon EMR que desee.

  4. En Finalización del clúster y sustitución del nodo, asegúrese de que la opción Sustitución de nodo en mal estado (recomendada) esté preseleccionada o anule la selección para desactivarla.

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

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

AWS CLI
Para activar o desactivar la sustitución de nodos en mal estado al crear un clúster con la AWS CLI
  • Con la AWS CLI, puede lanzar un clúster con la sustitución de nodos en mal estado habilitada mediante el comando create-cluster con el parámetro --unhealthy-node-replacement . La sustitución de nodos en mal estado está activada de forma predeterminada.

    En el siguiente ejemplo, se crea un clúster con la opción de sustitución de nodos en mal estado habilitada:

    nota

    Se incluyen caracteres de continuación de línea de Linux (\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

    aws emr create-cluster --name "SampleCluster" --release-label emr-7.10.0 \ --applications Name=Hadoop Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --unhealthy-node-replacement

    Para más información sobre el uso de comandos de Amazon EMR en la AWS CLI, consulte los comandos de Amazon EMR AWS CLI.

Configuración de la sustitución de nodos en mal estado en un clúster en ejecución

Para activar o desactivar la sustitución de nodos en mal estado en un clúster en ejecución mediante la consola, la AWS CLI o la API.

Console
Para activar o desactivar la sustitución de nodos en mal estado al crear un clúster en ejecución con la consola
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EMR 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.

  3. En la pestaña Propiedades de la página de detalles del clúster, busque Finalización del clúster y sustitución del nodo y seleccione Editar.

  4. Seleccione o anule la selección de la casilla de verificación de sustitución de nodos en mal estado para activar o desactivar la característica. A continuación, seleccione Guardar cambios para confirmar.

AWS CLI
Para activar o desactivar la sustitución de nodos en mal estado en un clúster en ejecución mediante la AWS CLI
  • Para activar la sustitución de nodos en mal estado en un clúster en ejecución con la AWS CLI, utilice el comando modify-cluster-attributes con el parámetro --unhealthy-node-replacement. Para deshabilitarla, utilice el parámetro --no-unhealthy-node-replacement.

    En el siguiente ejemplo, se activa la sustitución de nodos en mal estado en el clúster con el ID j-3KVTXXXXXX7UG:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --unhealthy-node-replacement

    En el siguiente ejemplo, se desactiva la sustitución de nodos en mal estado en el mismo clúster:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-unhealthy-node-replacement