web-dev-qa-db-fra.com

Surveillance d'Apache Spark avec Prometheus

J'ai lu que Spark n'a pas Prométhée comme l'un des puits pré-emballés. J'ai donc trouvé ceci post sur la façon de surveiller Apache Spark avec prometheus.

Mais j'ai eu du mal à comprendre et à réussir car je suis débutant et c'est la première fois que je travaille avec Apache Spark.

La première chose que je ne comprends pas, c'est ce que je dois faire?

  • J'ai besoin de changer les metrics.properties

  • Dois-je ajouter du code dans l'application ou?

Je ne comprends pas quelles sont les étapes pour y arriver ...

La chose que je fais est: changer les propriétés comme dans le lien, écrivez cette commande:

--conf spark.metrics.conf=<path_to_the_file>/metrics.properties

Et que dois-je faire d'autre pour voir les mesures d'Apache spark?

J'ai également trouvé ces liens: Monitoring Apache Spark with Prometheus

https://argus-sec.com/monitoring-spark-prometheus/

Mais je ne pouvais pas y arriver aussi ...

J'ai lu qu'il existe un moyen d'obtenir des métriques à partir de Graphite puis de les exporter vers Prometheus mais je n'ai pas trouvé de document utile.

15
xmlParser

Il existe plusieurs façons de surveiller Apache Spark avec Prometheus.

L'un des moyens est de JmxSink + jmx-exporter

Les préparatifs

Utilisez-le dans spark-Shell ou spark-submit

Dans la commande suivante, le jmx_prometheus_javaagent-0.3.1.jar fichier et le spark.yml sont téléchargés dans les étapes précédentes. Il pourrait être nécessaire de le modifier en conséquence.

bin/spark-Shell --conf "spark.driver.extraJavaOptions=-javaagent:jmx_prometheus_javaagent-0.3.1.jar=8080:spark.yml" 

Y accéder

Après l'exécution, nous pouvons accéder avec localhost: 8080/metrics

Prochain

Il peut ensuite configurer prometheus pour supprimer les métriques de jmx-exporter.

REMARQUE: nous devons gérer correctement la partie de découverte si elle s'exécute dans un environnement de cluster.

3
Rockie Yang

J'ai suivi le readme de GitHub et cela a fonctionné pour moi (le blog d'origine suppose que vous utilisez le fork Banzai Cloud car ils étaient censés être acceptés par le PR en amont). Ils ont externalisé l'évier en un projet autonome ( https://github.com/banzaicloud/spark-metrics ) et je l'ai utilisé pour le faire fonctionner avec Spark 2.3 .

En fait, vous pouvez gratter (Prométhée) via JMX, et dans ce cas, vous n'avez pas besoin de l'évier - les gens de Banzai Cloud ont écrit un article sur la façon dont ils utilisent JMX pour Kafka, mais en fait, vous pouvez le faire pour n'importe quelle machine virtuelle Java.

Donc, fondamentalement, vous avez deux options:

  • utiliser l'évier

  • ou passez par JMX,

ils ouvrent les deux sources.

3
Mark