Surveillez les métriques de Spark avec Amazon Managed Service pour Prometheus - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Surveillez les métriques de Spark avec Amazon Managed Service pour Prometheus

Avec les versions 7.1.0 et supérieures d'Amazon EMR, vous pouvez intégrer EMR Serverless à Amazon Managed Service for Prometheus afin de collecter des métriques Apache Spark pour les tâches et applications EMR Serverless. Cette intégration est disponible lorsque vous soumettez une tâche ou créez une application à l'aide de la AWS console, de l'API EMR Serverless ou du. AWS CLI

Prérequis

Avant de pouvoir transmettre vos métriques Spark à Amazon Managed Service for Prometheus, vous devez remplir les conditions préalables suivantes.

  • Créez un espace de travail Amazon Managed Service pour Prometheus. Cet espace de travail sert de point de terminaison pour l'ingestion. Notez l'URL affichée pour Endpoint - URL d'écriture à distance. Vous devez spécifier l'URL lorsque vous créez votre application EMR Serverless.

  • Pour autoriser l'accès à vos tâches à Amazon Managed Service for Prometheus à des fins de surveillance, ajoutez la politique suivante à votre rôle d'exécution des tâches.

    { "Sid": "AccessToPrometheus", "Effect": "Allow", "Action": ["aps:RemoteWrite"], "Resource": "arn:aws:aps:<AWS_REGION>:<AWS_ACCOUNT_ID>:workspace/<WORKSPACE_ID>" }

Configuration

Pour utiliser la AWS console afin de créer une application intégrée à Amazon Managed Service for Prometheus
  1. Consultez Getting started with Amazon EMR Serverless pour créer une application.

  2. Lorsque vous créez une application, choisissez Utiliser les paramètres personnalisés, puis configurez votre application en spécifiant les informations dans les champs que vous souhaitez configurer.

  3. Sous Journaux et métriques des applications, choisissez Deliver les métriques du moteur à Amazon Managed Service for Prometheus, puis spécifiez votre URL d'écriture à distance.

  4. Spécifiez les autres paramètres de configuration souhaités, puis choisissez Create and start application.

Utilisez l'API AWS CLI ou EMR Serverless

Vous pouvez également utiliser l'API AWS CLI EMR Serverless pour intégrer votre application EMR Serverless à Amazon Managed Service for Prometheus lorsque vous exécutez les commandes ou. create-application start-job-run

create-application
aws emr-serverless create-application \ --release-label emr-7.1.0 \ --type "SPARK" \ --monitoring-configuration '{ "prometheusMonitoringConfiguration": { "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write" } }'
start-job-run
aws emr-serverless start-job-run \ --application-id <APPPLICATION_ID> \ --execution-role-arn <JOB_EXECUTION_ROLE> \ --job-driver '{ "sparkSubmit": { "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py", "entryPointArguments": ["10000"], "sparkSubmitParameters": "--conf spark.dynamicAllocation.maxExecutors=10" } }' \ --configuration-overrides '{ "monitoringConfiguration": { "prometheusMonitoringConfiguration": { "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write" } } }'

L'inclusion prometheusMonitoringConfiguration dans votre commande indique qu'EMR Serverless doit exécuter la tâche Spark avec un agent qui collecte les métriques Spark et les écrit sur votre point de terminaison remoteWriteUrl pour Amazon Managed Service for Prometheus. Vous pouvez ensuite utiliser les métriques Spark dans Amazon Managed Service for Prometheus pour la visualisation, les alertes et les analyses.

Propriétés de configuration avancées

EMR Serverless utilise un composant de Spark nommé PrometheusServlet pour collecter les métriques Spark et traduire les données de performance en données compatibles avec Amazon Managed Service for Prometheus. Par défaut, EMR Serverless définit les valeurs par défaut dans Spark et analyse les métriques du pilote et de l'exécuteur lorsque vous soumettez une tâche à l'aide de. PrometheusMonitoringConfiguration

Le tableau suivant décrit toutes les propriétés que vous pouvez configurer lorsque vous soumettez une tâche Spark qui envoie des métriques à Amazon Managed Service for Prometheus.

Propriété Spark Valeur par défaut Description
spark.metrics.conf.*.sink.prometheusServlet.class

org.apache.spark.metrics.sink. PrometheusServlet

Classe utilisée par Spark pour envoyer des métriques à Amazon Managed Service for Prometheus. Pour modifier le comportement par défaut, spécifiez votre propre classe personnalisée.

spark.metrics.conf.*.source.jvm.class

org.apache.spark.metrics.source. JvmSource

La classe utilisée par Spark pour collecter et envoyer des métriques cruciales à partir de la machine virtuelle Java sous-jacente. Pour arrêter de collecter des métriques JVM, désactivez cette propriété en lui attribuant une chaîne vide, telle que"". Pour modifier le comportement par défaut, spécifiez votre propre classe personnalisée.

spark.metrics.conf.driver.sink.prometheusServlet.path

/métriques/prométhée

URL distincte utilisée par Amazon Managed Service for Prometheus pour collecter les statistiques du pilote. Pour modifier le comportement par défaut, spécifiez votre propre chemin. Pour arrêter de collecter les métriques des conducteurs, désactivez cette propriété en lui attribuant une chaîne vide, telle que"".

spark.metrics.conf.executor.sink.prometheusServlet.path

/metrics/executor/prometheus

URL distincte utilisée par Amazon Managed Service for Prometheus pour collecter des métriques auprès de l'exécuteur. Pour modifier le comportement par défaut, spécifiez votre propre chemin. Pour arrêter de collecter les métriques de l'exécuteur, désactivez cette propriété en lui attribuant une chaîne vide, telle que"".

Pour plus d'informations sur les métriques Spark, consultez Métriques Apache Spark.

Considérations et restrictions

Lorsque vous utilisez Amazon Managed Service for Prometheus pour collecter des métriques à partir d'EMR Serverless, tenez compte des considérations et limites suivantes.

  • Support pour l'utilisation d'Amazon Managed Service for Prometheus avec EMR Serverless uniquement dans les pays où Amazon Managed Service for Régions AWS Prometheus est généralement disponible.

  • L'exécution de l'agent pour collecter les métriques Spark sur Amazon Managed Service for Prometheus nécessite davantage de ressources de la part des employés. Si vous choisissez une taille de travail plus petite, telle qu'un travailleur vCPU, la durée d'exécution de votre tâche peut augmenter.

  • Support pour l'utilisation d'Amazon Managed Service for Prometheus avec EMR Serverless uniquement pour les versions 7.1.0 et supérieures d'Amazon EMR.

  • Amazon Managed Service for Prometheus doit être déployé sur le même compte sur lequel vous exécutez EMR Serverless afin de collecter des métriques.