web-dev-qa-db-ja.com

Spark実行メモリの監視

監視できるようにすることですSpark 実行メモリではなくストレージメモリ SparkUI。つまり、executionmemory NOT executor memory です。

実行メモリとは:

このリージョンは、シャッフル、結合、ソート、および集計を実行するときに中間データをバッファリングするために使用されます。この領域のサイズは、spark.shuffle.memoryFraction(デフォルト0.2)で設定されます。によると: 統合メモリ管理Spark 1.6

回答を集中的に検索した後、未回答のStackOverflow質問、ストレージメモリのみに関連する回答、またはタイプの曖昧な回答を使用した回答を見つけました。Gangliaを使用します Clouderaコンソールを使用するなど...

Stack Overflowでこの情報を求める要望があるようですが、満足できる回答が1つもありません。 monitoring spark memoryを検索するときのStackOverflowのトップポストをいくつか示します。

モニターSpark実行およびストレージメモリ使用率

Spark Jobs のメモリ使用量の監視

SPARK:上のメモリ消費量を監視する方法Spark cluster?

Spark-実際に使用されたエグゼキューターメモリを監視する

spark application?

SparkアプリケーションでメモリとCPU使用量を取得する方法

質問

Sparkバージョン> 2.0

  1. Execution memory of Spark job? SparkUIのタブです。はい、またはいいえ。

  2. SparkListeners(@JacekLaskowski?)でそれを実行できますか?history-serverはどうですか?または、唯一の方法は外部ツールを使用することですか?グラファナ、ガングリア、他?外部ツールの場合、チュートリアルをポイントするか、いくつかの詳細なガイドラインを提供していただけますか?

  3. 私はこれを見ました SPARK-9103 Sparkのメモリ使用量の追跡 実行メモリを監視することはまだ不可能のようです。また、これは関連があるようです SPARK-23206追加のメモリ調整メトリック

  4. しますPeak Execution memoryタスクでの実行メモリの使用/占有の信頼できる見積もりはありますか?たとえば、タスクがピーク時に1 Gbを使用するとステージUIが示しており、エグゼキューターあたり5 cpuがある場合、ステージを完了するには、各エグゼキューターで少なくとも5 Gbの実行メモリが必要であることを意味しますか?

  5. 実行メモリを垣間見るために使用できる他のプロキシはありますか?

  6. 実行メモリがいつストレージメモリに食い込み始めるかを知る方法はありますか?キャッシュされたテーブルがSparkUIの[ストレージ]タブから消えた場合、または一部のみが残った場合、それは実行メモリによって強制排除されたことを意味しますか?

12
astro_asz

将来の参考のために自分の質問に答える:

Mesosをクラスターマネージャーとして使用しています。 Mesos UIで、特定のワーカーのすべてのエグゼキューターを一覧表示するページを見つけました。そこには、エグゼキューターのメモリ使用量が表示されています。合計メモリ使用量ストレージ+実行のようです。メモリがいっぱいになるとエグゼキュータが死ぬことがはっきりとわかります。

アクセスするために:

  • すべてのクラスターワーカーを一覧表示する[エージェント]タブに移動します
  • 労働者を選択
  • フレームワークを選択-スクリプトの名前を持つフレームワーク
  • 内部には、この特定のワーカーで実行されているジョブのエグゼキューターのリストがあります。
  • メモリ使用量については、メモリ(使用済み/割り当て済み)を参照してください。

ドライバーについても同様です。フレームワークについては、Spark Clusterという名前のフレームワークを選択します

この数をプログラムで抽出する方法を知りたい場合は、この質問に対する私の回答をご覧ください。 Mesos Agents Framework Executor Memoryを取得する方法

1
astro_asz