私は、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にエクスポートする方法があることを読みましたが、有用なドキュメントが見つかりませんでした。
Apacheを監視する方法はいくつかありますSpark Prometheusで。
方法の1つはJmxSink + jmx-exporter
です
次のコマンドでは、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を構成できます。
注:クラスター環境で実行されている場合、検出部分を適切に処理する必要があります。
私はGitHub readmeをフォローしましたが、うまくいきました(元のブログでは、PRが上流で受け入れられると期待されていたため、Banzai Cloudフォークを使用することを想定しています)。彼らはシンクをスタンドアロンプロジェクトに外部化し( https://github.com/banzaicloud/spark-metrics )、私はそれを使用してSpark 2.3で動作するようにしました。
実際には、JMXを介して(Prometheus)をスクレイピングできます。その場合、シンクは必要ありません。BanzaiCloudの人々は、KafkaでJMXを使用する方法について投稿しましたが、実際には、どのJVMでもこれを実行できます。
したがって、基本的には2つのオプションがあります。
流しを使う
またはJMXを通過し、
彼らは両方のオプションをオープンソース化しています。