web-dev-qa-db-ja.com

ApacheのモニタリングSpark Prometheusで

私は、Sparkに事前にパッケージ化されたシンクの1つとしてPrometheusが含まれていないことを確認しました。Apacheを監視する方法について、この post を見つけましたSparkプロメテウスで。

しかし、私は初心者であり、Apache Sparkを使用するのは今回が初めてなので、理解し、成功するのは難しいと感じました。

私が得られない最初のことは、私がする必要があることですか?

  • Metrics.propertiesを変更する必要があります

  • アプリにコードを追加する必要がありますか?

私はそれを作るためのステップが何であるかわかりません...

私が作っていることは、リンクのようにプロパティを変更して、次のコマンドを書きます:

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

そして、Apache sparkからメトリックを表示するために他に何をする必要がありますか?

また、私はこのリンクを見つけました: ApacheのモニタリングSpark Prometheusで

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

でも、それでもうまくいかなかった...

Graphiteからメトリックを取得し、それをPrometheusにエクスポートする方法があることを読みましたが、有用なドキュメントが見つかりませんでした。

15
xmlParser

Apacheを監視する方法はいくつかありますSpark Prometheusで。

方法の1つはJmxSink + jmx-exporterです

準備

Spark-ShellまたはSpark-Submitで使用します

次のコマンドでは、jmx_prometheus_javaagent-0.3.1.jarファイルとspark.ymlが前の手順でダウンロードされています。それに応じて変更する必要があるかもしれません。

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

アクセスする

実行後、 localhost:8080/metrics でアクセスできます

次に、jmx-exporterからメトリックを取得するようにprometheusを構成できます。

注:クラスター環境で実行されている場合、検出部分を適切に処理する必要があります。

3
Rockie Yang

私はGitHub readmeをフォローしましたが、うまくいきました(元のブログでは、PRが上流で受け入れられると期待されていたため、Banzai Cloudフォークを使用することを想定しています)。彼らはシンクをスタンドアロンプ​​ロジェクトに外部化し( https://github.com/banzaicloud/spark-metrics )、私はそれを使用してSpark 2.3で動作するようにしました。

実際には、JMXを介して(Prometheus)をスクレイピングできます。その場合、シンクは必要ありません。BanzaiCloudの人々は、KafkaでJMXを使用する方法について投稿しましたが、実際には、どのJVMでもこれを実行できます。

したがって、基本的には2つのオプションがあります。

  • 流しを使う

  • またはJMXを通過し、

彼らは両方のオプションをオープンソース化しています。

3
Mark