【AWS】AWS Glue ~ CloudWatch Metrics ~

■ はじめに

AWS Glue の CloudWatch Metrics(メトリクス) について、
徐々にメモする。

目次

【1】公式ドキュメント
【2】関連用語
 1)ステージ(Stages)
 2)タスク(Tasks)
 3)ドライバ(Driver)
 4)エグゼキュタ(Executors)
【3】メトリクスの構成
 1)ETL Data Movement
 2)Data shuffle across executors
 3)Memory profile: Driver and Executors
 4)CPU Load: Driver and Executors
 5)Job Execution: Active Executors, Completed Stages & Maximum Needed Executors

【1】公式ドキュメント

要求の厳しいステージとストラグラータスクのデバッグ
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-profile-debug-straggler.html
DPU の容量計画のモニタリング
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-debug-capacity.html

【2】関連用語

https://qiita.com/uryyyyyyy/items/ba2dceb709f8701715f7
https://qiita.com/yoshii0110/items/5b2263a0cbd2afe0ec20

を一読しておくといいかも。

1)ステージ(Stages)

* Sparkは 全体の処理を ステージ と呼ばれる単位で分割して扱う

2)タスク(Tasks)

* ステージを更に分割した処理単位(分散処理における最小処理単位)
* Task数 = Partition数 * Stage数

3)ドライバ(Driver)

* 処理全体を統括しているプロセス

4)エグゼキュタ(Executors)

* 分散処理(Task)を実際に実行するプロセス

【3】メトリクスの構成

以下で構成されている。

1)ETL Data Movement
2)Data shuffle across executors
3)Memory profile: Driver and Executors
4)CPU Load: Driver and Executors
5)Job Execution: Active Executors, Completed Stages & Maximum Needed Executors

1)ETL Data Movement

* ETL データ移動
 => 実行しているETLの
  データの読み込み(Read)と書き込み(Writtern)の推移をグラフ表示

2)Data shuffle across executors

* エグゼキュタ間のデータシャッフル

3)Memory profile: Driver and Executors

* メモリプロファイル:ドライバとエグゼキュタ

グラフの読み取りについて

* メモリ使用率が全体的に高い・低すぎる場合
 => NumberOfWorkers / Worker typeの変更を検討する

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-api-jobs-job.html

NumberOfWorkers 数値 (整数)。–
ジョブの実行時に割り当てられた、定義済みの workerType ワーカー数。

WorkerType – UTF-8 文字列 (有効な値: Standard="" | G.1X="" | G.2X="")。

4)CPU Load: Driver and Executors

* CPUロード:ドライバとエグゼキュタ

グラフの読み取りについて

* CPU使用率が全体的に高い・低すぎる場合
 => 「3)Memory profile: Driver and Executors」と同様に
  NumberOfWorkers / Worker typeの変更を検討する

5)Job Execution: Active Executors, Completed Stages & Maximum Needed Executors

* ジョブ実行:アクティブなエクゼキュータ、完了したステージ、必要なエクゼキュータの最大数

グラフの読み取りについて

* Max Allocated Executors を超えている場合
 => DPU数を増やせば、処理速度の改善が期待できる

* Max Allocated Executors より著しく少ない場合
 => DPU数を減らせば、コスト削減できる可能性がある

参考文献

https://buildersbox.corp-sansan.com/entry/2021/02/04/110000
https://dev.classmethod.jp/articles/20180717-aws-glue-support-etl-job-metrics/
https://qiita.com/pioho07/items/4b97b61f2ec098afb695

関連記事

AWS Glue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/01/221926