第25章. Sparkストリーミングを監視する
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ストリーミング・アプリケーションの を監視することは、デプロイされたアプリケーションの運用の信頼性を得るために必要であり、CPU、メモリ、セカンダリ・ストレージなど、アプリケーションによって使用されるリソースの全体的なビューを含むべきである。分散アプリケーションであるため、監視する要素の数は、クラスタ化されたデプロイの一部であるノードの数によって倍増する。
この複雑さを管理するためには、包括的でスマートなモニタリング・システムが必要である。 それは、ストリーミング・アプリケーションのランタイムに参加するすべての重要な可動部分からメトリックを収集し、同時に、それらを理解可能で消費可能な形で提供する必要がある。
Spark Streamingの場合、先ほど説明した主要業績評価指標に加え、受信データ量、アプリケーション用に選択したバッチ間隔、マイクロバッチごとの実際の実行時間の関係が主に気になる。 これら3つのパラメータの関係が、長期的に安定したSpark Streamingジョブの鍵となる。 ジョブが安定した範囲内で実行されるようにするには、パフォーマンス監視を開発・生産プロセスの不可欠な部分とする必要がある。
Sparkは、そのプロセスのさまざまな段階に対応するいくつかのモニタリング・インタフェースを提供している:
- ストリーミングUI
-
Webインタフェースで、実行中のジョブに関する主要指標のチャートを提供する。
- モニタリングREST API
-
HTTPインタフェースを介してメトリックを取得するために、外部監視システムによって消費できるAPIのセット。
- メトリック・サブシステム
-
プラグイン可能なサービスプロバイダインタフェース(SPI)により、外部監視ツールをSparkに緊密に統合できる。
- 内部イベントバス
-
pub/sub subsystem in Sparkで、プログラムサブスクライバがクラスタ上のアプリケーション実行のさまざまな側面に関するイベントを受け取ることができる。
この章では、これらの監視インターフェイスと、それらがストリーミングアプリケーションのライフサイクルの様々なフェーズにどのように適用されるかを探る。まず、ストリーミングUIから始め、このインターフェイスが提供する機能と、実行中のSpark Streamingジョブの様々な側面との関連性を調査する。 ストリーミングUIは、初期開発およびデプロイフェーズで使用できる強力なビジュアルツールであり、実用的な観点からアプリケーションの動作をよりよく理解することができる。 この章では、特にパフォーマンスに焦点を当てて、ストリーミングUIの使用方法を詳しく説明する。
残りの章では、Spark Streamingの様々なモニタリング統合機能をカバーする。 REST APIとMetrics Subsystem SPIによって提供されるAPIを探索し、内部メトリックを外部のモニタリングクライアントに公開する。 最後に、内部イベントバスのデータモデルとインタラクションについて説明する。これは、カスタムモニタリングソリューションを統合するために最大限の柔軟性が必要な場合に、Spark Streamingによって提供されるすべてのメトリックにプログラムでアクセスするために使用できる。
ストリーミングUI ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access