Apache Spark のモニター
「 Instana 」エージェントをインストールすると、「 Apache Spark 」センサーが自動的に展開およびインストールされます。
サポート情報
Apache Spark センサーが現在の環境と互換性があるかどうかを確認するには、以下のサポート情報セクションをご確認ください:
対応バージョンとサポート方針
このセンサーは、 1.4.x から 3.5.x までの Spark バージョンに対応しています。
以下の表は、最新のサポート対象バージョンとサポート方針を示しています:
| テクノロジー | サポート・ポリシー | 最新技術バージョン | サポートされる最新バージョン |
|---|---|---|---|
| Apache Spark アプリケーション | オンデマンド | 3.5.4 | 3.5.4 |
| Apache Spark スタンドアロン | オンデマンド | 3.5.4 | 3.5.4 |
サポートポリシーに関する詳細については、 「センサーのサポート戦略」 を参照してください。
構成
このエージェントはSparkアプリケーションをネイティブに監視するため、設定は任意です。
ポーリングレートの設定
Sparkアプリケーションのカスタムポーリングレート
次の例に示すように、agent configuration.yaml ファイル poll_rate 内のパラメータを使用して、 Instana が Apache Spark からデータやメトリクスを収集するためにポーリングを行う頻度を設定できます
com.instana.plugin.sparkapplication:
poll_rate: 1 # values are in seconds. Default value is 1 second.
Spark Standaloneのカスタムポーリングレート
次の例に示すように、agent configuration.yaml ファイル poll_rate 内のパラメータを使用して、 Instana が Apache Spark からデータやメトリクスを収集するためにポーリングを行う頻度を設定できます
com.instana.plugin.sparkstandalone:
poll_rate: 1 # values are in seconds. Default value is 1 second.
センサー (データ収集)
Spark アプリケーション
Spark アプリケーションの 2 つのメイン・コンポーネントは、ドライバー・プロセスと executor プロセスです。 executor プロセスには、タスク実行に関連するデータのみが含まれます。 ドライバーはメイン・プロセスであり、Spark アプリケーションの実行の調整を担当します。 したがって、Spark アプリケーションのパフォーマンスと実行に関するすべてのデータが含まれ、Spark アプリケーションの各実行プログラムに関するデータも含まれます。
Instana は、ドライバー JVM からすべての Spark アプリケーション・データ (executor のデータを含む) を収集します。 Spark アプリケーションをモニターするには、Spark ドライバー JVM が実行されているホストに Instana エージェントをインストールする必要があります。
Spark アプリケーションをクラスター・マネージャーにサブミットするには、2 つの方法があることに注意してください。 このオプションの設定によっては、ドライバー JVM が実行される場所が変わる場合があります。
- デプロイモードのクラスタ:たとえば
./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode cluster /path/to/app.jar、--deploy-mode clusterオプションを指定してジョブを送信する場合、Sparkドライバー( JVM )はクラスタマネージャーのワーカーノードの1つ上で実行されています。 Instana エージェントがワーカー・ノードにインストールされている場合、Spark アプリケーション (ドライバー) は自動的にディスカバーされます。 - デプロイモードのクライアント:オプションを指定して送信
--deploy-mode clientする場合、またはオプションを指定せずに送信--deploy-modeする場合(デフォルト値はclient)、例えば./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode client /path/to/app.jarまたは./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn /path/to/app.jarの場合、Sparkドライバー JVM は、このコマンドが実行されているホスト上で動作します。 Instana がこの Spark アプリケーションをモニターできるようにするには、Spark サブミットが実行されるホストに Instana エージェントがインストールされている必要があります。
Instana がモニターする Spark アプリケーションのタイプに応じて、以下のように異なるデータが収集されます。
バッチ・アプリケーション
- ジョブ
- ステージ数
- 最長の完了ステージ
- エグゼキューター数
ストリーミング・アプリケーション
- バッチ処理
- スケジューリング遅延
- 合計遅延
- 処理時間
- 出力操作
- 入力レコード
- 受信側数
- エグゼキューター数
AWS EMR 上の Spark アプリケーション
Instana は Spark ドライバーを介して Spark アプリケーションを検出およびモニターするため、Spark アプリケーションを可視化するには、EMR クラスター内の EC2 インスタンスにエージェントをインストールしてください。 プライマリノードからSparkアプリケーションをデプロイし、かつ clientデプロイモードを使用する場合、EMRクラスタのプライマリノードにのみエージェントをインストールすれば十分です。
Spark アプリの JAR ファイルをプライマリノードにコピーせず、 S3 のバケットなど、別の場所 cluster から Spark アプリをデプロイしたい場合は、EMR クラスタ内のすべてのノードにエージェントをインストールする必要があります。 これは、ドライバーがワーカー・ノードでスケジュールされているためです。
最良の方法は、EMR クラスターを作成し、拡張構成で、インストールされた Instana エージェントをインストールしたカスタム AMI イメージを選択することです。 カスタムAMIを使用してEMRクラスタを起動する方法の詳細については、 AWS のドキュメントを参照してください。 Instana エージェントがインストールされたAMIイメージを作成するには、 AWS のドキュメントを参照してください。 ソフトウェアをインストールするために EC2 インスタンスに SSH で接続するように求めるプロンプトが出されたら、Instana の「設定」ページにあるワンライナーを使用します。このページは、Instana ユーザー・インターフェースのサイドバーから「設定」をクリックして開くことができます。 詳細については、 「Amazon Elastic Compute Cloud (Amazon EC2 ) へのホストエージェントのインストール 」を参照してください。 これにより、EMRクラスタのすべてのノードに関する情報を把握できるほか、デプロイメントモードに関係なくSparkアプリケーションを監視でき、 Hadoop YARN など、EMRの基盤となるすべてのコンポーネントに関する情報を得ることができます。 Hadoop YARN のメトリクスのみを測定したい場合は、『 Amazon ElasticMapReduce (EMR) の監視 』のドキュメントを参照してください。
Spark スタンドアロン・クラスター・マネージャー
Sparkは、YARNクラスタマネージャー上で動作するだけでなく、シンプルなスタンドアロン展開モードも提供しています。 Spark Standaloneはクラスタマネージャーであり、プライマリノードとワーカーノードで構成されています。 Instana クラスタのプライマリノードを通じて、Sparkスタンドアロン・クラスタ全体を監視します。 クラスター全体のデータとクラスターのワーカー・ノードごとにデータを収集します。
追跡対象の構成
- ホスト
- ポート
- REST URI
- バージョン
- 状況
メトリック
- 稼働中のワーカー数
- 非活動ワーカー数
- 廃止済みワーカー数
- 不明状態のワーカー数
- 使用中のメモリー
- メモリーの合計
- 使用済みコア数
- 合計コア数
- ワーカーごとのデータおよびメトリック
- 最新のアプリケーション
- 最新のドライバー