Saltar al contenido

¿Por qué termina mi clúster de Amazon EMR con el error "application provisioning failed"?

7 minutos de lectura
0

Mi clúster de Amazon EMR termina con el error "application provisioning failed".

Resolución

Si Amazon EMR no puede instalar, configurar ni iniciar un software específico cuando lanza un clúster de Amazon EMR, es posible que recibas el error "application provisioning failed".

Revisión de los registros de aprovisionamiento de Amazon EMR

Amazon EMR almacena los registros de aprovisionamiento en un bucket de Amazon Simple Storage Service (Amazon S3) que especificas al lanzar el clúster.

Sigue estos pasos:

  1. Abre la consola de Amazon EMR.
  2. En el panel de navegación, selecciona Clústeres. A continuación, elige el clúster de Amazon EMR fallido para ver los detalles del clúster.
  3. En la sección Resumen, elige Terminado con errores y anota el ID del nodo principal incluido en el mensaje de error.
  4. En la sección Registros del clúster, elige la URL de ubicación de Amazon S3.
  5. Sigue la siguiente ruta para navegar a tu carpeta UUID:
    node/example-primary-node-ID/provision-node/apps-phase/0/example-UUID/.
    Nota: Sustituye example-primary-node-ID por tu ID de nodo principal. Sustituye example-UUID por tu UUID.
  6. En la lista resultante, selecciona puppet.log.gz y elige Abrir para ver el aprovisionamiento en una nueva pestaña del navegador.

Identificación de los motivos de los errores en los registros de aprovisionamiento

Los parámetros de configuración no compatibles pueden provocar errores. Los nombres de host incorrectos, las contraseñas incorrectas o los problemas generales del sistema operativo también pueden provocar errores. Busca en los registros palabras clave relacionadas, como «error», «err» o «fail».

Problemas al conectarse a un metaalmacén externo con una instancia de Amazon RDS

Puedes configurar algunas aplicaciones de Amazon EMR, como Apache Hive, Hue o Apache Oozie, para almacenar datos en una base de datos externa, como Amazon Relational Database Service (Amazon RDS). Cuando tengas problemas de conexión con la base de datos externa, recibirás un mensaje de error.

Ejemplo de mensaje de error de Hive:

2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): Underlying cause: java.sql.SQLNonTransientConnectionException : Could not connect to address=(host=hostname)(port=3306)(type=master) : Socket fail to connect to host:hostname, port:3306. hostname
2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): SQL Error code: -1

Para resolver este tipo de error, haz lo siguiente:

  • Comprueba que el nombre de host, el usuario, la contraseña y la base de datos de la instancia de Amazon RDS sean correctos.
  • Comprueba que las reglas de entrada del grupo de seguridad de instancias de Amazon RDS permitan las conexiones desde el grupo de seguridad del nodo principal de Amazon EMR.

Problemas al conectarse a un KDC externo

Amazon EMR te permite configurar un KDC externo para agregar una capa de seguridad adicional. También puedes crear una relación de confianza con un servidor de Active Directory. Si se produce un problema al contactar con el KDC o al intentar unirse a un dominio, recibirás un mensaje de error.

Ejemplo de mensaje de error de Puppet:

2022-11-26 03:02:01 +0000 Puppet (err): 'echo "${AD_DOMAIN_JOIN_PASSWORD}" | realm join -v -U "${AD_DOMAIN_JOIN_USER}"@"${CROSS_REALM_TRUST_REALM}" "${CROSS_REALM_TRUST_DOMAIN}"' returned 1 instead of one of [0]
2022-11-26 03:02:01 +0000 /Stage[main]/Kerberos::Ad_joiner/Exec[realm_join]/returns (err): change from 'notrun' to ['0'] failed: 'echo "${AD_DOMAIN_JOIN_PASSWORD}" | realm join -v -U "${AD_DOMAIN_JOIN_USER}"@"${CROSS_REALM_TRUST_REALM}" "${CROSS_REALM_TRUST_DOMAIN}"' returned 1 instead of one of [0]

Para resolver este tipo de error, haz lo siguiente:

  • Comprueba si has escrito correctamente el dominio de Kerberos.
  • Comprueba si has introducido correctamente la contraseña administrativa del KDC.
  • Comprueba si has escrito correctamente el usuario y la contraseña para unirte a Active Directory.
  • Comprueba que Active Directory contenga el usuario de unión y que el usuario tenga los permisos correctos.
  • En el caso de KDC y Active Directory alojados en Amazon Elastic Compute Cloud (Amazon EC2), comprueba que las reglas de entrada del grupo de seguridad de KDC y Active Directory permitan las conexiones desde el grupo de seguridad del nodo principal de Amazon EMR.
  • En el caso de KDC y Active Directory alojados fuera de Amazon EC2, comprueba que KDC y Active Directory permitan las conexiones desde la nube virtual privada (VPC) y la subred del clúster de Amazon EMR.

Problemas al iniciar servicios, como YARN ResourceManager, Hadoop NameNode o Spark History Server

Amazon EMR le permite crear una configuración personalizada de todas las aplicaciones al lanzar un clúster de Amazon EMR. Sin embargo, estas configuraciones a veces pueden bloquear los servicios desde su proceso de inicio. Cuando el servicio no se puede iniciar debido a un problema, recibirás un mensaje de error.

Ejemplo de mensaje de error de Apache Spark History Server:

2022-11-26 03:34:13 +0000 Puppet (err): Systemd start for spark-history-server failed!journalctl log for spark-history-server:
-- Logs begin at Sat 2022-11-26 03:27:57 UTC, end at Sat 2022-11-26 03:34:13 UTC. --
Nov 26 03:34:10 ip-192-168-1-32 systemd[1]: Starting Spark history-server...
Nov 26 03:34:10 ip-192-168-1-32 spark-history-server[1076]: Starting Spark history-server (spark-history-server):[OK]
Nov 26 03:34:10 ip-192-168-1-32 su[1112]: (to spark) root on none
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: spark-history-server.service: control process exited, code=exited status=1
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: Failed to start Spark history-server.
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: Unit spark-history-server.service entered failed state.  
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: spark-history-server.service failed.
2022-11-26 03:34:13 +0000 /Stage[main]/Spark::History_server/Service[spark-history-server]/ensure (err): change from 'stopped' to 'running' failed: Systemd start for spark-history-server failed!
journalctl log for spark-history-server:

Para resolver este tipo de error, haz lo siguiente:

  • Comprueba qué servicio no se pudo iniciar.
  • Revisa los ajustes de configuración para ver si hay errores ortográficos.
  • Comprueba el registro de Amazon S3 en la ubicación especificada para encontrar la causa del error. Por ejemplo, s3://example-log-location/example-cluster-ID/node/example-primary-node-ID/applications/example-failed-application/example-failed-service.gz.

Problemas al descargar o instalar aplicaciones

Cuando Amazon EMR no puede instalar o descargar una aplicación, se produce un error en el clúster de Amazon EMR y los registros de aprovisionamiento no se completan. Revisa el registro de stderr.gz para identificar la causa del error.
Ejemplo de mensaje de error:

stderr.gzError Summary
-------------
Disk Requirements:
  At least 2176MB more space needed on the / filesystem.

2022-11-26 03:18:44,662 ERROR Program: Encountered a problem while provisioning
java.lang.RuntimeException: Amazon-linux-extras topics enabling or yum packages installation failed.

Para resolver este tipo de error, aumenta el volumen raíz de Amazon Elastic Block Store (Amazon EBS) al lanzar el clúster de Amazon EMR.

Los registros de Amazon S3 no están disponibles

Cuando Amazon EMR no aprovisiona las aplicaciones y no se genera ningún registro en Amazon S3, recibirás un mensaje de error. Es posible que un error de red haya provocado un error en el registro de Amazon S3.

Para resolver este tipo de error, haz lo siguiente:

Información relacionada

El clúster de EMR no se pudo aprovisionar

OFICIAL DE AWSActualizada hace 4 meses