View a markdown version of this page

Surveillez les statistiques 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 statistiques 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

Conditions préalables

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

  • Créez un service géré Amazon pour l'espace de travail 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 devrez spécifier l'URL lorsque vous créerez votre application EMR Serverless.

  • Pour accorder 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 le plugin AWS console pour créer une application intégrée à Amazon Managed Service pour Prometheus
  1. Consultez la section Premiers pas avec 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 Diffuser les métriques du moteur à Amazon Managed Service pour Prometheus, puis spécifiez votre URL d'écriture à distance.

  4. Spécifiez tous les autres paramètres de configuration souhaités, puis choisissez Créer et démarrer l'application.

Utilisez l'API sans serveur AWS CLI ou EMR

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. 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 remoteWriteUrl terminal pour Amazon Managed Service for Prometheus. Vous pouvez ensuite utiliser les métriques Spark dans Amazon Managed Service for Prometheus à des fins de visualisation, d'alerte et d'analyse.

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 pour 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 configurées lors de la soumission d'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

Classe utilisée par Spark pour collecter et envoyer des métriques cruciales depuis la machine virtuelle Java sous-jacente. Pour arrêter de collecter des métriques JVM, désactivez cette propriété en la définissant sur 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

/metrics/prometheus

URL distincte qu'Amazon Managed Service for Prometheus utilise pour collecter des statistiques auprès du pilote. Pour modifier le comportement par défaut, spécifiez votre propre chemin. Pour arrêter de collecter des métriques sur les conducteurs, désactivez cette propriété en la définissant sur une chaîne vide, telle que"".

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

/metrics/executor/prométhée

URL distincte qu'Amazon Managed Service for Prometheus utilise 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 la définissant sur une chaîne vide, telle que"".

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

Considérations et restrictions

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

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

  • L'exécution de l'agent pour collecter des métriques Spark sur Amazon Managed Service for Prometheus nécessite davantage de ressources de la part des collaborateurs. 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.

  • L'assistance pour l'utilisation d'Amazon Managed Service pour Prometheus avec EMR Serverless est disponible uniquement pour les versions 7.1.0 et supérieures d'Amazon EMR.

  • Amazon Managed Service pour Prometheus doit être déployé sur le même compte que celui où vous exécutez EMR Serverless pour collecter des métriques.