Registro de eventos de aplicaciones de Spark en Athena - Amazon Athena

Registro de eventos de aplicaciones de Spark en Athena

El editor de cuadernos Athena permite el registro estándar de Jupyter, Spark y Python. Puede usar df.show() para mostrar el contenido de PySpark DataFrame o print("Output") para mostrar valores en la salida de la celda. Las salidas stdout, stderr y results de los cálculos se escriben en la ubicación del bucket de resultados de la consulta en Amazon S3.

Registro de eventos de aplicaciones de Spark en Amazon CloudWatch

Sus sesiones de Athena también pueden introducir registros en Amazon CloudWatch en la cuenta que esté utilizando.

Descripción de los flujos de registro y los grupos de registros

CloudWatch organiza la actividad de registro en flujos de registro y grupos de registros.

Flujos de registro: un flujo de registro de CloudWatch es una secuencia de eventos de registro que comparten el mismo origen. Cada fuente independiente de registros en Registros de CloudWatch constituye un flujo de registros independiente.

Grupos de registro: en Registros de CloudWatch, un grupo de registros es un grupo de flujos de registro que comparten la misma configuración de retención, supervisión y control de acceso.

No hay límites en el número de flujos de registros que pueden pertenecer a un grupo de registros.

En Athena, cuando inicia una sesión de cuaderno por primera vez, Athena crea un grupo de registro en CloudWatch que utiliza el nombre de su grupo de trabajo habilitado para Spark, como en el siguiente ejemplo.

/aws-athena/workgroup-name

Este grupo de registro recibe un flujo de registro por cada ejecutor de su sesión que produzca al menos un evento de registro. Un ejecutor es la unidad de cálculo más pequeña que una sesión de cuaderno puede solicitar a Athena. En CloudWatch, el nombre del flujo de registro comienza con el ID de sesión y el ID de ejecutor.

Para obtener más información sobre los flujos de registro y los grupos de registro de CloudWatch, consulte Trabajo con grupos de registro y flujos de registro en la guía del usuario de Registros de Amazon CloudWatch.

Uso de objetos de registro estándar en Athena para Spark

En una sesión de Athena para Spark, puede utilizar los dos objetos de registro estándar globales siguientes para escribir registros en Amazon CloudWatch:

  • athena_user_logger: envía registros únicamente a CloudWatch. Utilice este objeto cuando desee registrar la información de sus aplicaciones de Spark directamente en CloudWatch, como en el siguiente ejemplo.

    athena_user_logger.info("CloudWatch log line.")

    El ejemplo escribe un evento de registro en CloudWatch como el siguiente:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: CloudWatch log line.
  • athena_shared_logger: envía el mismo registro tanto a CloudWatch como a AWS para fines de soporte. Puede utilizar este objeto para compartir registros con los equipos de servicio de AWS a fin de solucionar problemas, como en el siguiente ejemplo.

    athena_shared_logger.info("Customer debug line.") var = [...some variable holding customer data...] athena_shared_logger.info(var)

    El ejemplo registra la línea debug y el valor de la variable var en Registros de CloudWatch y envía una copia de cada línea a AWS Support.

    nota

    Por motivos de privacidad, su código de cálculo y sus resultados no se comparten con AWS. Asegúrese de que sus llamadas a athena_shared_logger escriban solo la información para la que desea que sea visible AWS Support.

Los registradores proporcionados escriben eventos a través de Apache Log4j y heredan los niveles de registro de esta interfaz. Los valores posibles del nivel de registro son DEBUG, ERROR, FATAL, INFO y WARN o WARNING. Puede utilizar la función con nombre correspondiente en el registrador para generar estos valores.

nota

No vuelva a unir los nombres athena_user_logger ni athena_shared_logger. Al hacerlo, los objetos de registro no podrán escribir en CloudWatch durante el resto de la sesión.

El siguiente procedimiento muestra cómo registrar los eventos de cuaderno de Athena en Registros de Amazon CloudWatch.

Para registrar los eventos de cuaderno de Athena en Registros de Amazon CloudWatch
  1. Siga Introducción a Apache Spark en Amazon Athena para crear un grupo de trabajo compatible con Spark en Athena con un nombre único. Este tutorial utiliza el nombre del grupo de trabajo athena-spark-example.

  2. Siga los pasos que se indican en Paso 7: crear su propio cuaderno para crear un cuaderno e iniciar una nueva sesión.

  3. En el editor de cuadernos de Athena, en una nueva celda de cuaderno, introduzca el siguiente comando:

    athena_user_logger.info("Hello world.")
  4. Ejecute la celda.

  5. Para recuperar el ID de sesión actual, realice una de las siguientes acciones:

    • Consulte la salida de la celda (por ejemplo, ... session=72c24e73-2c24-8b22-14bd-443bdcd72de4).

    • En una celda nueva, ejecute el comando mágico %session_id.

  6. Guarde el ID de sesión.

  7. Con la misma Cuenta de AWS que está utilizando para ejecutar la sesión del cuaderno, abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  8. En el panel de navegación de la consola de CloudWatch, elija Log groups (Grupos de registro).

  9. En la lista de grupos de registro, seleccione el grupo de registro que tenga el nombre de su grupo de trabajo de Athena habilitado para Spark, como en el siguiente ejemplo.

    /aws-athena/athena-spark-example

    La sección Log streams (Flujos de registro) contiene una lista de uno o más enlaces de flujos de registro para el grupo de trabajo. Cada nombre de flujo de registro contiene el ID de sesión, el ID del ejecutor y el UUID único separados por caracteres de barra diagonal.

    Por ejemplo, si el ID de sesión es 5ac22d11-9fd8-ded7-6542-0412133d3177 y el ID del ejecutor es f8c22d11-9fd8-ab13-8aba-c4100bfba7e2, el nombre del flujo de registro se parece al siguiente ejemplo.

    5ac22d11-9fd8-ded7-6542-0412133d3177/f8c22d11-9fd8-ab13-8aba-c4100bfba7e2/f012d7cb-cefd-40b1-90b9-67358f003d0b
  10. Elija el enlace de flujo de registro de su sesión.

  11. En la página Eventos de registro, consulte la columna Mensaje.

    El evento de registro de la celda que ejecutó es similar al siguiente:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: Hello world.
  12. Vuelva al editor de cuadernos de Athena.

  13. En una celda nueva, introduzca el siguiente código. El código registra una variable en CloudWatch:

    x = 6 athena_user_logger.warn(x)
  14. Ejecute la celda.

  15. Vuelva a la página Log events (Eventos de registro) de la consola de CloudWatch para ver el mismo flujo de registro.

  16. El flujo de registro ahora contiene una entrada de eventos de registro con un mensaje como el siguiente:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 WARN builtins: 6