¿Cómo puedo solucionar los problemas mientras visualizo la interfaz de usuario de Spark para trabajos de ETL de AWS Glue?

3 minutos de lectura
0

No puedo ver la interfaz de usuario de Apache Spark para los trabajos de ETL de AWS Glue.

Resolución

Elija una de las siguientes soluciones, en función de cómo acceda a la interfaz de usuario de Spark: con una pila de AWS CloudFormation o con Docker.

Pila de AWS CloudFormation

Si utiliza una pila de AWS CloudFormation para ver la interfaz de usuario de Spark, una instancia de Amazon Elastic Compute Cloud (Amazon EC2) realizará una solicitud de HTTPS para confirmar que la IU de Spark funcione. Si la solicitud falla, se mostrará el error «Se ha agotado el tiempo de espera para WaitCondition. Se han recibido 0 condiciones, pero se esperaba 1», por lo que la pila de AWS CloudFormation se restaurará.

Compruebe lo siguiente para solucionar el problema:

  • Subred: confirme que la subred pueda llegar al punto de conexión de la API de Amazon Simple Storage Service (Amazon S3). Por ejemplo, si utiliza una subred privada, confirme que la subred tenga un punto de conexión de VPC o una puerta de enlace de NAT.
  • Puerto del servidor de historial: confirme que puede acceder a la subred a través del puerto del servidor del historial de Spark. Por ejemplo, podría haber un firewall bloqueando el puerto.
  • Directorio de registro de eventos: confirme que ha introducido una ruta de Amazon S3 válida para el directorio de registro de eventos. Debe usar **s3a://**para el esquema de rutas de registros de eventos. Si hay archivos de registro de eventos en la ruta de Amazon S3 especificada, entonces es válida.

Si el error persiste, compruebe los siguientes grupos de registro en Registros de Amazon CloudWatch:

  • /aws-glue/sparkui_cfn/cfn-init.log
  • /aws-glue/sparkui_cfn/spark_history_server.log

Nota: La instancia de EC2 del servidor de historial termina cuando se restaura la pila de CloudFormation. Para evitar que se termine la instancia, habilite la protección contra terminación de la pila.

Docker

Si utiliza Docker para ver la IU de Spark y no puede conectarse al servidor del historial de Spark desde su navegador weg, compruebe lo siguiente:

  • Confirme que las credenciales de AWS (clave de acceso y clave secreta) son válidas. Si desea utilizar credenciales temporales, use spark.hadoop.fs.s3a.session.token en el comando. Ejemplo:
$ docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS \
-Dspark.history.fs.logDirectory=s3a://path_to_eventlog \
-Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID
-Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY \
-Dspark.hadoop.fs.s3a.session.token=SESSION_TOKEN \
-Dspark.hadoop.fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \
-p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
  • confirme que ha introducido una ruta de Amazon S3 válida para el directorio de registro de eventos. Debe usar **s3a://**para el esquema de rutas de registros de eventos. Si hay archivos de registro de eventos en la ruta de Amazon S3 especificada, entonces es válida.
  • Confirme que ha introducido el número de puerto correcto en el navegador. De forma predeterminada, el número de puerto es 18080 (por ejemplo, http://localhost:18080). Para cambiar el número de puerto, cambie el parámetro -p en el comando y el parámetro spark.history.ui.port en el archivo de Docker.

Si sigue sin poder ver la IU de Spark, consulte los registros. Para obtener los registros stdout y stderr para el contenedor de Docker, ejecute docker run con el parámetro -it en vez del parámetro -itd. Ejemplo:

$ docker run -it -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS \
-Dspark.history.fs.logDirectory=s3a://path_to_eventlog \
-Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID
-Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY \
-Dspark.hadoop.fs.s3a.session.token=SESSION_TOKEN \
-Dspark.hadoop.fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \
-p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"

Información relacionada

Monitoreo de trabajos mediante la interfaz de usuario web de Apache Spark

Habilitación de la IU web de Apache Spark para trabajos de AWS Glue

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años