Spark アプリケーションの効率を向上させるには、そのパフォーマンスと動作を監視することが不可欠です。 この投稿では、詳細な Spark メトリクスを公開する方法を示します。 アマゾンEMR 〜へ アマゾンクラウドウォッチ。 これにより、リソースの使用率を最適化しながらボトルネックを特定できるようになります。
CloudWatch は、強力なカスタマイズ オプションと他の AWS サービスとのシームレスな統合を備えた、AWS リソースとアプリケーションに対する堅牢かつスケーラブルでコスト効率の高いモニタリング ソリューションを提供します。 デフォルトでは、Amazon EMR は 基本的な指標 CloudWatch に送信して、クラスターのアクティビティと健全性を追跡します。 Spark の構成可能なメトリクス システムを使用すると、HTTP、JMX、CSV ファイルなどのさまざまなシンクでメトリクスを収集できますが、Spark がメトリクスを CloudWatch に公開できるようにするには追加の設定が必要です。
ソリューションの概要
このソリューションには、カスタム シンクにメトリクスを送信するための Spark 構成が含まれています。 カスタム シンクは、Metricfilter.json ファイルで定義されたメトリックのみを収集します。 CloudWatch エージェントを利用してメトリクスをカスタム Cloudwatch 名前空間に公開します。 含まれているブートストラップ アクション スクリプトは、CloudWatch エージェントとメトリック ライブラリを アマゾン エラスティック コンピューティング クラウド (Amazon EC2) EMR インスタンス。 CloudWatch ダッシュボードは、アプリケーションのパフォーマンスに関する洞察を即座に提供します。
次の図は、ソリューションのアーキテクチャとワークフローを示しています。
ワークフローには次の手順が含まれます。
- ユーザーは Spark EMR ジョブを開始し、EMR クラスター上にステップを作成します。 Apache Spark を使用すると、ワークロードは EMR クラスターのさまざまなノードに分散されます。
- クラスターの各ノード (EC2 インスタンス) では、Spark ライブラリがメトリクス データをキャプチャして CloudWatch エージェントにプッシュします。CloudWatch エージェントは、メトリクス データを CloudWatch にプッシュする前に集計します。 30秒ごと.
- ユーザーは、CloudWatch コンソールでカスタム名前空間にアクセスするメトリクスを表示できます。
私たちは提供します AWS CloudFormation この投稿のテンプレートは一般的なガイドとして使用されます。 このテンプレートは、Amazon EMR で CloudWatch エージェントを設定して Spark メトリクスを CloudWatch にプッシュする方法を示します。 必要に応じてレビューおよびカスタマイズして、Amazon EMR セキュリティ設定を含めることができます。 ベストプラクティスとして、Amazon EMR セキュリティ設定をテンプレートに含めることをお勧めします。 転送中のデータを暗号化する.
また、このスタックによってデプロイされた一部のリソースは、使用し続けるとコストが発生することにも注意してください。 さらに、 EMR指標 CloudWatch のコストは発生しません。 ただし、カスタムメトリクスには、CloudWatch メトリクスの価格設定に基づいて料金が発生します。 詳細については、「」を参照してください。 Amazon CloudWatchの料金.
次のセクションでは、次の手順を実行します。
- メトリクス ライブラリ、インストール スクリプト、フィルタ定義を作成し、 Amazon シンプル ストレージ サービス (Amazon S3)バケット。
- CloudFormation テンプレートを使用して、次のリソースを作成します。
- CloudWatch コンソールで Spark メトリクスを監視します。
前提条件
この投稿は、あなたが以下を持っていることを前提としています:
- An AWSアカウント.
- ブートストラップ スクリプト、ライブラリ、メトリック フィルター定義を保存するための S3 バケット。
- で作成された VPC アマゾン バーチャル プライベート クラウド (Amazon VPC)、EMR クラスターが起動される場所。
- AWS のサービスとリソースに対する Amazon EMR アクセス許可のデフォルトの IAM サービスロール。 これらのロールは、aws emr create-default-roles コマンドを使用して作成できます。 AWSコマンドラインインターフェイス (AWS CLI)。
- オプションの EC2 キー ペア (SSH ではなく SSH 経由でクラスターに接続する場合) セッションマネージャ、の機能 AWS システム マネージャー.
必要なメトリクスを定義する
CloudWatch への不要なデータの送信を避けるために、私たちのソリューションはメトリクスフィルターを実装しています。 を確認してください Sparkドキュメント 名前空間とそれに関連するメトリクスについて理解します。 どのメトリクスが特定のアプリケーションとパフォーマンスの目標に関連しているかを判断します。 アプリケーションが異なれば、ワークロード、データ処理要件、最適化目標に応じて、監視するために異なるメトリックが必要になる場合があります。 監視するメトリック名は、関連付けられた名前空間とともに Metricfilter.json ファイルで定義する必要があります。
Metricfilter.json 定義の例を作成しました。これには、データ I/O、ガベージ コレクション、メモリと CPU プレッシャー、および Spark ジョブ、ステージ、およびタスクのメトリクスに関連するメトリクスのキャプチャが含まれます。
特定のメトリクスは、すべての Spark リリース バージョンで利用できるわけではないことに注意してください (たとえば、appStatus は Spark 3.0 で導入されました)。
必要なファイルを作成して S3 バケットにアップロードします
詳細については、を参照してください。 オブジェクトのアップロード および サーバーに CloudWatch エージェントをインストールして実行する.
ブートストラップ スクリプトを作成してアップロードするには、次の手順を実行します。
- Amazon S3 コンソールで、S3 バケットを選択します。
- ソフトウェア設定ページで、下図のように オブジェクト タブを選択 アップロード.
- 選択する ファイルを追加次に、 メトリックフィルター.json, インストーラー.sh, たとえばjob.sh ファイル。
- さらに、
emr-custom-cw-sink-0.0.1.jar
使用する Amazon EMR リリース バージョンに対応するメトリクス ライブラリ ファイル: - 選択する アップロード、ファイルの S3 URI をメモします。
CloudFormation テンプレートを使用してリソースをプロビジョニングする
選択する 発射スタック アカウントで CloudFormation スタックを起動し、テンプレートをデプロイするには:
このテンプレートは、IAM ロール、IAM インスタンス プロファイル、EMR クラスター、CloudWatch ダッシュボードを作成します。 クラスターは基本的なものを開始します Spark サンプル アプリケーション. このテンプレートからスタックを作成すると、使用した AWS リソースに対して課金されます。
CloudFormation ウィザードは、次のパラメーターを変更または指定するように求めます。
- インスタンスタイプ - インスタンスのタイプ すべてのインスタンス グループに対して。 デフォルトは m5.2xlarge です。
- インスタンス数コア – コア インスタンス グループ内のインスタンスの数。 デフォルトは 4 です。
- EMRリリースラベル - Amazon EMR リリース ラベル 使用したい。 デフォルトは emr-6.9.0 です。
- ブートストラップスクリプトパス – 前にコピーした installer.sh インストール ブートストラップ スクリプトの S3 パス。
- メトリックフィルターパス – 前にコピーした Metricfilter.json 定義の S3 パス。
- メトリクスライブラリパス – 前にコピーした CloudWatch emr-custom-cw-sink-3.jar ライブラリの S0.0.1 パス。
- CloudWatch名前空間 – 使用するカスタム CloudWatch 名前空間の名前。
- SparkDemoApplicationPath – 前にコピーした examplejob.sh スクリプトの S3 パス。
- サブネット – クラスターが起動する EC2 サブネット。 このパラメーターを指定する必要があります。
- EC2キーペア名 – セッションマネージャーの代替として、クラスターノードに接続するためのオプションの EC2 キーペア。
メトリクスを表示する
CloudFormation スタックが正常にデプロイされると、サンプル ジョブが自動的に開始され、完了するまでに約 15 分かかります。 CloudWatch コンソールで、 ダッシュボード ナビゲーションペインで。 次に、プレフィックス SparkMonitoring でリストをフィルターします。
ダッシュボードの例には、クラスターに関する情報と、Spark ジョブ、ステージ、タスクの概要が含まれています。 メトリクスは、以下で始まるカスタム名前空間でも使用できます。 EMRCustomSparkCloudWatchSink
.
メモリ、CPU、I/O、および追加のタスク分散メトリックも含まれます。
最後に、詳細な Java ガベージ コレクション メトリックがエグゼキューターごとに利用可能になります。
クリーンアップ
アカウントで今後の料金が発生しないようにするには、このチュートリアルで作成したリソースを削除してください。 EMR クラスターは、クラスターがアクティブである限り料金が発生するため、完了したら停止してください。 次の手順を実行します。
- CloudFormation コンソールのナビゲーションペインで、 スタック.
- 起動したスタックを選択します (
EMR-CloudWatch-Demo
)、次に選択 削除. - S3 バケットを空にする あなたが作成しました。
- S3 バケットを削除する あなたが作成しました。
まとめ
このウォークスルーの手順を完了したので、CloudWatch エージェントがクラスターホスト上で実行され、Spark メトリクスを CloudWatch にプッシュするように設定されました。 この機能を使用すると、Amazon EMR で実行されている Spark ジョブの健全性とパフォーマンスを効果的に監視し、重大な問題をリアルタイムで検出し、根本原因を迅速に特定できます。
このサンプル テンプレートのような CloudFormation テンプレートを使用して、このソリューションをパッケージ化してデプロイできます。これにより、IAM インスタンス プロファイル ロール、CloudWatch ダッシュボード、および EMR クラスターが作成されます。 ライブラリのソース コードは次の場所で入手できます。 GitHubの カスタマイズ用。
これをさらに進めるには、CloudWatch アラームでこれらのメトリクスを使用することを検討してください。 他のアラームと一緒にそれらを収集できます。 複合アラーム または、送信などのアラーム アクションを構成する Amazon シンプル通知サービス (Amazon SNS) 通知により、次のようなイベント駆動型プロセスをトリガーします。 AWSラムダ 機能します。
著者について
ル・クルー・ルッベ AWS のプリンシパルエンジニアです。 彼は、当社の最大規模の企業顧客と協力して、最も複雑な技術的問題のいくつかを解決しています。 彼は、顧客の生活に影響を与え、改善するためのイノベーションを通じて幅広いソリューションを推進しています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 自動車/EV、 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- チャートプライム。 ChartPrime でトレーディング ゲームをレベルアップしましょう。 こちらからアクセスしてください。
- ブロックオフセット。 環境オフセット所有権の近代化。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :は
- :not
- :どこ
- 1
- 100
- 107
- 視聴者の38%が
- 20
- 30
- 9
- a
- 能力
- アクセス
- 知り合い
- 越えて
- Action
- 行動
- アクティブ
- アクティビティ
- NEW
- さらに
- エージェント
- アラーム
- すべて
- ことができます
- 沿って
- また
- 代替案
- Amazon
- Amazon EC2
- アマゾンEMR
- Amazon Webサービス
- an
- および
- アパッチ
- Apache Spark
- 申し込み
- 約
- 建築の
- 建築
- です
- AS
- 関連する
- と仮定する
- At
- 著者
- 自動的に
- 利用できます
- 避ける
- 知って
- AWS
- ベース
- 基本
- BE
- BEST
- ブートストラップ
- 広い
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- 缶
- 機能
- キャプチャ
- キャプチャ
- 原因
- 一定
- 課金
- 選択する
- クラスタ
- コード
- 収集する
- コレクション
- 集める
- コンプリート
- 記入済みの
- 複雑な
- 計算
- 設定された
- お問合せ
- 接続する
- 検討
- 領事
- 基本
- 対応する
- コスト効率の良い
- コスト
- 可能性
- CPU
- 作ります
- 作成した
- 作成します。
- 作成
- 重大な
- カスタム
- Customers
- カスタム化
- カスタマイズ
- ダッシュボード
- データ
- データ処理
- デフォルト
- 定義済みの
- 定義
- 実証します
- 実証
- によっては
- 展開します
- 展開
- 配備する
- 詳細な
- 決定する
- 異なります
- 配布
- ディストリビューション
- 行われ
- ドント
- ドライブ
- 各
- 前
- 効果的に
- 効率
- enable
- エンジニア
- Enterprise
- 企業顧客
- 本質的な
- エーテル(ETH)
- 例
- 特徴
- File
- filter
- フォロー中
- から
- 機能
- さらに
- 未来
- 取得する
- 与える
- Go
- 目標
- グループ
- グループの
- ガイド
- 持ってる
- he
- 健康
- ホスト
- 認定条件
- How To
- しかしながら
- HTML
- HTTP
- HTTPS
- IAM
- 識別する
- 識別
- if
- 説明する
- 描く
- 影響
- 実装する
- 改善します
- in
- include
- 含まれました
- 含ま
- 含めて
- 情報
- 革新的手法
- 洞察力
- インストール
- インストールする
- インスタント
- 統合
- に
- 導入
- 問題
- IT
- ITS
- Java
- ジョブ
- Jobs > Create New Job
- JSON
- キー
- 最大の
- 起動する
- 打ち上げ
- 起動
- 図書館
- 生活
- ような
- LINE
- リスト
- 長い
- マネージャー
- 五月..
- メモリ
- メトリック
- メトリック
- 分
- 修正する
- モニター
- モニタリング
- 他には?
- 最も
- しなければなりません
- 名
- 名
- ナビゲーション
- 必要とされる
- 次の
- ノード
- 注意
- 通知
- 通知
- 数
- 目的
- of
- on
- の
- 最適化
- 最適化
- オプション
- or
- その他
- 私たちの
- 概要
- パッケージ
- ペア
- ペイン
- パラメーター
- パラメータ
- path
- 以下のために
- パフォーマンス
- パーミッション
- 計画
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 肖像
- ポスト
- 強力な
- 練習
- 圧力
- 価格設定
- 校長
- プライベート
- 問題
- ラボレーション
- 処理
- プロフィール
- 提供します
- は、大阪で
- パブリッシュ
- プッシュ
- プッシュ
- 押す
- すぐに
- むしろ
- リアル
- への
- 推奨する
- 関連する
- リリース
- 関連した
- 残る
- 必要とする
- の提出が必要です
- 要件
- リソースを追加する。
- リソースの活用
- リソース
- 責任
- レビュー
- 堅牢な
- 職種
- 役割
- ルート
- ランニング
- ド電源のデ
- シームレス
- セクション
- セクション
- セキュリティ
- 送信
- 送信
- 送る
- サービス
- サービス
- セッション
- すべき
- 簡単な拡張で
- So
- 溶液
- ソリューション
- 解決する
- 一部
- ソース
- ソースコード
- スパーク
- 特定の
- スタック
- ステージ
- ステージ
- start
- 起動
- 開始
- 手順
- ステップ
- Force Stop
- ストレージ利用料
- サブネット
- 首尾よく
- そのような
- 概要
- システム
- 取る
- 取り
- 仕事
- タスク
- 技術的
- template
- より
- それ
- ソース
- アプリ環境に合わせて
- それら
- その後
- ボーマン
- 彼ら
- この
- 介して
- 時間
- 〜へ
- 追跡する
- トリガー
- 下
- つかいます
- 中古
- 利用
- 多様
- バージョン
- 詳しく見る
- バーチャル
- ウォークスルー
- 欲しいです
- ました
- we
- ウェブ
- Webサービス
- いつ
- which
- while
- 意志
- ワークフロー
- 作品
- X
- ヤムル
- 貴社
- あなたの
- ゼファーネット