Überwachen Sie Spark-Metriken mit Amazon Managed Service für Prometheus - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überwachen Sie Spark-Metriken mit Amazon Managed Service für Prometheus

Mit den EMR Amazon-Versionen 7.1.0 und höher können Sie EMR Serverless in Amazon Managed Service for Prometheus integrieren, um Apache Spark-Metriken für EMR serverlose Jobs und Anwendungen zu sammeln. Diese Integration ist verfügbar, wenn Sie einen Job einreichen oder eine Anwendung mit der AWS Konsole, dem Serverless oder dem erstellen. EMR API AWS CLI

Voraussetzungen

Bevor Sie Ihre Spark-Metriken an Amazon Managed Service for Prometheus übermitteln können, müssen Sie die folgenden Voraussetzungen erfüllen.

  • Erstellen Sie einen Amazon Managed Service for Prometheus Workspace. Dieser Workspace dient als Aufnahme-Endpunkt. Notieren Sie sich den für Endpoint URL angezeigten Wert — Remote Write. URL Sie müssen das angeben, URL wenn Sie Ihre EMR serverlose Anwendung erstellen.

  • Um Amazon Managed Service for Prometheus zu Überwachungszwecken Zugriff auf Ihre Jobs zu gewähren, fügen Sie Ihrer Job-Ausführungsrolle die folgende Richtlinie hinzu.

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

Aufstellen

So verwenden Sie die AWS Konsole, um eine Anwendung zu erstellen, die in Amazon Managed Service for Prometheus integriert ist
  1. Informationen zum Erstellen einer Anwendung finden Sie unter Erste Schritte mit Amazon EMR Serverless.

  2. Wählen Sie beim Erstellen einer Anwendung die Option Benutzerdefinierte Einstellungen verwenden und konfigurieren Sie dann Ihre Anwendung, indem Sie die Informationen in die Felder eingeben, die Sie konfigurieren möchten.

  3. Wählen Sie unter Anwendungsprotokolle und Metriken die Option Engine-Metriken an Amazon Managed Service for Prometheus liefern aus und geben Sie dann Ihren Remote-Schreibvorgang an. URL

  4. Geben Sie alle anderen gewünschten Konfigurationseinstellungen an und wählen Sie dann Anwendung erstellen und starten aus.

Verwenden Sie AWS CLI oder EMR Serverless API

Sie können auch AWS CLI oder EMR Serverless verwenden, API um Ihre EMR Serverless-Anwendung in Amazon Managed Service for Prometheus zu integrieren, wenn Sie die Befehle oder die create-application Befehle ausführen. 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" } } }'

Die Aufnahme prometheusMonitoringConfiguration in Ihrem Befehl bedeutet, dass EMR Serverless den Spark-Job mit einem Agenten ausführen muss, der die Spark-Metriken sammelt und sie auf Ihren remoteWriteUrl Endpunkt für Amazon Managed Service for Prometheus schreibt. Anschließend können Sie die Spark-Metriken in Amazon Managed Service for Prometheus für Visualisierungen, Benachrichtigungen und Analysen verwenden.

Erweiterte Konfigurationseigenschaften

EMRServerless verwendet eine Komponente innerhalb von Spark, die PrometheusServlet zur Erfassung von Spark-Metriken benannt ist, und übersetzt Leistungsdaten in Daten, die mit Amazon Managed Service for Prometheus kompatibel sind. Standardmäßig legt EMR Serverless Standardwerte in Spark fest und analysiert Treiber- und Executor-Metriken, wenn Sie einen Job einreichen mit. PrometheusMonitoringConfiguration

In der folgenden Tabelle werden alle Eigenschaften beschrieben, die Sie konfigurieren können, wenn Sie einen Spark-Job einreichen, der Metriken an Amazon Managed Service for Prometheus sendet.

Spark-Eigenschaft Standardwert Beschreibung
spark.metrics.conf.*.sink.prometheusServlet.class

org.apache.spark.metrics.sink. PrometheusServlet

Die Klasse, die Spark verwendet, um Metriken an Amazon Managed Service for Prometheus zu senden. Um das Standardverhalten zu überschreiben, geben Sie Ihre eigene benutzerdefinierte Klasse an.

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

org.apache.spark.metrics.source. JvmSource

Die Klasse, die Spark verwendet, um wichtige Metriken von der zugrunde liegenden virtuellen Java-Maschine zu sammeln und zu senden. Um das Sammeln von JVM Metriken zu beenden, deaktivieren Sie diese Eigenschaft, indem Sie sie auf eine leere Zeichenfolge setzen, z. "" B. Um das Standardverhalten zu überschreiben, geben Sie Ihre eigene benutzerdefinierte Klasse an.

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

/metrics/prometheus

Die eindeutige KennungURL, die Amazon Managed Service for Prometheus verwendet, um Metriken vom Fahrer zu sammeln. Um das Standardverhalten zu überschreiben, geben Sie Ihren eigenen Pfad an. Um die Erfassung von Treibermetriken zu beenden, deaktivieren Sie diese Eigenschaft, indem Sie sie auf eine leere Zeichenfolge setzen, z. "" B.

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

/metrics/executor/prometheus

Die eindeutige KennungURL, die Amazon Managed Service for Prometheus verwendet, um Metriken vom Testamentsvollstrecker zu sammeln. Um das Standardverhalten zu überschreiben, geben Sie Ihren eigenen Pfad an. Um die Erfassung von Executor-Metriken zu beenden, deaktivieren Sie diese Eigenschaft, indem Sie sie auf eine leere Zeichenfolge setzen, z. B. ""

Weitere Informationen zu den Spark-Metriken finden Sie unter Apache Spark-Metriken.

Überlegungen und Einschränkungen

Wenn Sie Amazon Managed Service for Prometheus verwenden, um Metriken von EMR Serverless zu sammeln, sollten Sie die folgenden Überlegungen und Einschränkungen berücksichtigen.

  • Support für die Verwendung von Amazon Managed Service für Prometheus mit EMR Serverless ist nur dort verfügbar, AWS-Regionen wo Amazon Managed Service für Prometheus allgemein verfügbar ist.

  • Die Ausführung des Agenten zur Erfassung von Spark-Metriken auf Amazon Managed Service for Prometheus erfordert mehr Ressourcen von den Mitarbeitern. Wenn Sie eine kleinere Mitarbeitergröße wählen, z. B. einen CPU V-Worker, kann sich Ihre Job-Laufzeit verlängern.

  • Support für die Verwendung von Amazon Managed Service für Prometheus mit EMR Serverless ist nur für EMR Amazon-Versionen 7.1.0 und höher verfügbar.

  • Amazon Managed Service for Prometheus muss in demselben Konto bereitgestellt werden, in dem Sie EMR Serverless ausführen, um Metriken zu sammeln.