アマゾンEMR AWS が提供するビッグデータ サービスであり、AWS で Apache Spark やその他のオープンソース アプリケーションを実行して、費用対効果の高い方法でスケーラブルなデータ パイプラインを構築します。 EMR クラスターにデプロイされたジョブから生成されたログを監視することは、重大な問題をリアルタイムで検出し、根本原因を迅速に特定するために不可欠です。
それらのログを アマゾンクラウドウォッチ サーバーのプロビジョニングやソフトウェアの管理を必要とせずに、運用上の問題に対処するために、ログから実用的なインテリジェンスを一元化および推進できます。 集計、フィルター、および正規表現を使用して、クエリの作成をすぐに開始できます。 さらに、時系列データを視覚化し、個々のログ イベントにドリルダウンし、クエリ結果を CloudWatch ダッシュボードにエクスポートできます。
に保存されているログを取り込むには アマゾン エラスティック コンピューティング クラウド (Amazon EC2) EMR クラスターのインスタンスを CloudWatch に追加するには、 CloudWatch エージェント. これにより、EC2 インスタンスから CloudWatch にログをプッシュする簡単な方法が提供されます。
CloudWatch エージェントは、サーバー上で自律的かつ継続的に実行されるソフトウェア パッケージです。 CloudWatch エージェントをインストールして構成し、EC2 インスタンス、オンプレミス ホスト、コンテナ化されたアプリケーションからシステム ログとアプリケーション ログを収集できます。 CloudWatch は、CloudWatch エージェントによって収集されたログを処理して保存します。これは、インフラストラクチャとアプリケーションのパフォーマンスと正常性の監視にさらに役立ちます。
この投稿では、EMR クラスターを作成し、CloudWatch でジョブの EMR ステップ ログを一元化します。 これにより、EMR クラスターの管理、問題のトラブルシューティング、およびパフォーマンスの監視が容易になります。 このソリューションは、CloudWatch を使用してリアルタイムのログ、メトリクス、およびイベント データを収集および視覚化し、インフラストラクチャとアプリケーションのメンテナンスを合理化したい場合に特に役立ちます。
ソリューションの概要
この投稿で紹介するソリューションは、EMR ステップの同時実行レベルが 1 に設定されている特定の構成に基づいています。これは、クラスターで一度に 1 つのステップのみが実行されることを意味します。 EMR ステップの同時実行レベルが XNUMX より大きい値に設定されている場合、ソリューションが期待どおりに機能しない可能性があることに注意することが重要です。 確認することを強くお勧めします EMR ステップの同時実行 この記事で紹介したソリューションを実装する前に構成を変更してください。
次の図は、ソリューションのアーキテクチャを示しています。
ワークフローには次の手順が含まれます。
- ユーザーは Apache Spark EMR ジョブを開始し、EMR クラスターにステップを作成します。 Apache Spark を使用すると、ワークロードは EMR クラスターのさまざまなノードに分散されます。
- クラスターの各ノード (EC2 インスタンス) で、CloudWatch エージェントはさまざまなログ ディレクトリを監視し、ログ ファイルの新しいエントリをキャプチャして CloudWatch にプッシュします。
- ユーザーは、CloudWatch コンソールからさまざまなログ グループにアクセスして、ステップ ログを表示できます。 Amazon EMR によって書き込まれるステップ ログは次のとおりです。
- コントローラ — ステップの処理に関する情報。 読み込み中にステップが失敗した場合は、このログでスタック トレースを見つけることができます。
- stderr — ステップを処理するときの Spark の標準エラー チャネル。
- (Linuxで言うところのstdout) — ステップを処理している間の Spark の標準出力チャネル。
私たちは提供します AWS CloudFormation 一般的なガイドとして、この投稿のテンプレートを使用してください。 このテンプレートは、Spark ログを CloudWatch にプッシュするように Amazon EMR で CloudWatch エージェントを構成する方法を示しています。 Amazon EMR セキュリティ設定を含めるために、必要に応じて確認およびカスタマイズできます。 ベスト プラクティスとして、テンプレートに Amazon EMR セキュリティ設定を含めて、 転送中のデータを暗号化する.
また、このスタックによってデプロイされたリソースの一部は、引き続き使用するとコストが発生することにも注意してください。
次のセクションでは、次の手順を実行します。
- ブートストラップ スクリプトを作成し、 Amazon シンプル ストレージ サービス (Amazon S3)バケット。
- CloudFormation テンプレートを使用して、次のリソースを作成します。
- CloudWatch コンソールで Spark ログを監視します。
前提条件
この投稿は、あなたが以下を持っていることを前提としています:
ブートストラップ スクリプトを作成して S3 バケットにアップロードする
詳細については、を参照してください。 オブジェクトのアップロード & サーバーに CloudWatch エージェントをインストールして実行する.
ブートストラップ スクリプトを作成してアップロードするには、次の手順を実行します。
- という名前のローカル ファイルを作成します。
bootstrap_cloudwatch_agent.sh
以下の内容で - Amazon S3 コンソールで、S3 バケットを選択します。
- ソフトウェア設定ページで、下図のように オブジェクト タブを選択 アップロード.
- 選択する ファイルを追加をクリックし、ブートストラップ スクリプトを選択します。
- 選択する アップロードをクリックして、ファイル名を選択します。
bootstrap_cloudwatch_agent.sh
. - 選択する S3 URI をコピー. この値は後の手順で使用します。
CloudFormation テンプレートを使用してリソースをプロビジョニングする
選択する 発射スタック アカウントで CloudFormation スタックを起動し、テンプレートをデプロイするには:
このテンプレートは、IAM ロール、IAM インスタンス プロファイル、Systems Manager パラメータ、および EMR クラスターを作成します。 クラスタは Spark PI 推定のサンプル アプリケーション. このテンプレートからスタックを作成すると、使用した AWS リソースに対して課金されます。
CloudFormation ウィザードは、次のパラメーターを変更または指定するように求めます。
- インスタンスタイプ - インスタンスのタイプ すべてのインスタンス グループに対して。 デフォルトは m4.xlarge です。
- インスタンス数コア – コア インスタンス グループ内のインスタンスの数。 デフォルトは 2 です。
- EMRリリースラベル - Amazon EMR リリース ラベル 使用したい。 デフォルトは emr-6.9.0 です。
- ブートストラップスクリプトパス – 前にコピーした CloudWatch エージェント インストール ブートストラップ スクリプトの S3 パス。
- サブネット – クラスターが起動する EC2 サブネット。 このパラメーターを指定する必要があります。
- EC2キーペア名 – セッション マネージャーの代替として、クラスター ノードに接続するためのオプションの EC2 キーペア。
ログ ストリームを監視する
CloudFormation スタックが正常にデプロイされたら、CloudWatch コンソールで、 ロググループ ナビゲーションペインで。 次に、ロググループをプレフィックスでフィルタリングします /aws/emr/master
.
ログ グループの ID は、EMR プライマリ ノードの EC2 インスタンス ID に対応します。 複数の EMR クラスターがある場合、この ID を使用して、プライマリ ノード ID に基づいて特定の EMR クラスターを識別できます。
ログ グループには、XNUMX つの異なるログ ストリームがあります。
ログ ストリームには次の情報が含まれます。
- ステップ標準出力 – ステップの処理中の Spark の標準出力チャネル。
- ステップ-stderr – ステップの処理中の Spark の標準エラー チャネル。
- ステップコントローラー – ステップの処理に関する情報。 読み込み中にステップが失敗した場合は、このログでスタック トレースを見つけることができます。
クリーンアップ
アカウントで今後課金されないようにするには、このチュートリアルで作成したリソースを削除してください。 EMR クラスターは、クラスターがアクティブである限り料金が発生するため、完了したら停止します。
- CloudFormation コンソールのナビゲーションペインで、 スタック.
- 起動したスタックを選択します (
EMR-CloudWatch-Demo
)、次に選択 削除. - S3 バケットを空にする あなたが作成しました。
- S3 バケットを削除する あなたが作成しました。
まとめ
このチュートリアルの手順を完了すると、CloudWatch エージェントがクラスター ホストで実行され、EMR ステップ ログを CloudWatch にプッシュするように構成されます。 この機能を使用すると、Amazon EMR で実行されている Spark ジョブの正常性とパフォーマンスを効果的に監視し、重大な問題をリアルタイムで検出し、根本原因を迅速に特定できます。
このサンプル テンプレートのような CloudFormation テンプレートを使用して、このソリューションをパッケージ化してデプロイできます。これにより、IAM インスタンス プロファイル ロール、Systems Manager パラメータ、および EMR クラスターが作成されます。
これをさらに進めるには、アラートの CloudWatch アラームでこれらのログを使用することを検討してください。 ログ グループ メトリック フィルタ. 他のアラームと一緒にそれらを収集して、 複合アラーム または、送信などのアラーム アクションを構成する Amazon シンプル通知サービス (Amazon SNS) 通知により、次のようなイベント駆動型プロセスをトリガーします。 AWSラムダ 機能します。
著者について
エンニオ・パストーレ AWS Data Lab チームのシニア データ アーキテクトです。 彼は、ビジネスや一般的な生活にプラスの影響を与える新しいテクノロジーに関連するすべてのことに熱心です。 Ennio は、データ分析において 10 年以上の経験があります。 彼は、企業が通信、銀行、ゲーム、小売、保険などの業界全体でデータ プラットフォームを定義および実装するのを支援しています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/big-data/push-amazon-emr-step-logs-from-amazon-ec2-instances-to-amazon-cloudwatch-logs/
- :は
- 1
- 10
- 100
- 9
- a
- 私たちについて
- アクセス
- 越えて
- 行動
- アクティブ
- 添加
- 住所
- エージェント
- アラーム
- アラート
- すべて
- 代替案
- Amazon
- Amazon EC2
- アマゾンEMR
- 分析論
- &
- アパッチ
- Apache Spark
- 申し込み
- 建築
- です
- AS
- At
- 自律的に
- AWS
- バンキング
- ベース
- BE
- 始まる
- BEST
- ビッグ
- ビッグデータ
- ブートストラップ
- ビルド
- ビジネス
- by
- 缶
- キャプチャ
- 原因
- チャネル
- 課金
- 選択する
- クラスタ
- 収集する
- 企業
- コンプリート
- 記入済みの
- 計算
- 接続する
- 検討
- 領事
- コンテンツ
- 連続的に
- 基本
- 対応する
- コスト効率の良い
- コスト
- 可能性
- 作ります
- 作成した
- 作成します。
- 作成
- 重大な
- カスタマイズ
- データ
- データ分析
- デフォルト
- 実証
- 展開します
- 展開
- 配備する
- 異なります
- ディレクトリ
- 配布
- ダウン
- ドライブ
- 各
- 前
- 容易
- echo
- 効果的に
- 可能
- 熱狂者
- エラー
- 本質的な
- エーテル(ETH)
- イベント
- イベント
- すべてのもの
- 例
- 予想される
- 体験
- export
- 表現
- 失敗
- 特徴
- File
- filter
- フィルター
- もう完成させ、ワークスペースに掲示しましたか?
- フォロー中
- 次
- から
- 機能
- さらに
- 未来
- 賭博
- 生成された
- Go
- 大きい
- グループ
- グループの
- ガイド
- 持ってる
- 健康
- 助けます
- 役立つ
- ことができます
- 非常に
- ホスト
- 認定条件
- How To
- HTML
- HTTP
- HTTPS
- IAM
- ID
- 識別する
- 識別
- 影響
- 実装する
- 実装
- 重要
- in
- include
- 含ま
- 含めて
- 個人
- 産業
- 情報
- インフラ
- install
- インストールする
- 保険
- インテリジェンス
- 問題
- IT
- ジョブ
- Jobs > Create New Job
- JPG
- JSON
- ラボ
- 起動する
- 打ち上げ
- 起動
- レベル
- ような
- ローディング
- ローカル
- 長い
- メンテナンス
- make
- 管理します
- マネージャー
- 方法
- 手段
- メトリック
- 修正する
- モニター
- モニタリング
- 他には?
- の試合に
- 名
- 名前付き
- ナビゲーション
- 必要とされる
- 必要
- 新作
- 新技術
- 次の
- ノード
- 通知
- 通知
- 数
- of
- 提供
- on
- ONE
- オープンソース
- オペレーショナル
- その他
- 出力
- パッケージ
- ペイン
- パラメーター
- パラメータ
- 特定の
- 特に
- path
- パフォーマンス
- プラットフォーム
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 正の
- ポスト
- 練習
- PLM platform.
- 主要な
- ラボレーション
- 処理
- プロフィール
- 提供します
- は、大阪で
- 準備
- プッシュ
- 押す
- すぐに
- リアル
- への
- 推奨する
- レギュラー
- 関連する
- リリース
- 残る
- リソース
- 結果
- 小売
- レビュー
- 職種
- ルート
- ラン
- ランニング
- ド電源のデ
- セクション
- セキュリティ
- 送信
- シニア
- シリーズ
- サービス
- セッション
- セッションに
- すべき
- 簡単な拡張で
- So
- ソフトウェア
- 溶液
- 一部
- スパーク
- 特定の
- スタック
- 標準
- start
- 起動
- 開始
- 手順
- ステップ
- Force Stop
- ストレージ利用料
- 店舗
- 合理化
- ストリーム
- サブネット
- 首尾よく
- そのような
- 数独
- システム
- 取る
- チーム
- テクノロジー
- 電気通信
- template
- それ
- それら
- ボーマン
- 三
- 介して
- 時間
- 時系列
- 〜へ
- トレース
- トリガー
- つかいます
- 値
- 検証する
- 詳しく見る
- ウォークスルー
- ウオッチ
- 仕方..
- which
- while
- 意志
- 無し
- 仕事
- ワークフロー
- 書き込み
- 書かれた
- ヤムル
- 年
- あなたの
- ゼファーネット