DEAデータオペレーションとサポート
あるデータエンジニアリングチームは、Amazon EMRではなくAWS Glue上のApache Sparkジョブで日次集計を実行しています。同じジョブが日によって実行時間が大きく変動し、原因がデータスキューなのかエグゼキュータのリソース不足なのかを切り分けたいと考えています。最小の運用負荷でステージ単位の実行状況とリソース使用率を分析する方法はどれですか。
AAWS GlueのジョブモニタリングでJob Run InsightsとSpark UIを有効化し、ステージ別実行時間とエグゼキュータ使用率を分析する
✓ 正解
Job Run InsightsとSpark UIはステージ・タスク単位の実行時間、シャッフル量、エグゼキュータのCPU/メモリ使用率を可視化する。特定タスクの長期化はスキュー、全体逼迫はリソース不足と切り分けられ追加計装なしで分析できる。
BCloudWatch Logs Insightsでジョブの出力ログを集計し、例外メッセージの発生頻度をクエリで可視化する
CloudWatch Logs Insightsは例外メッセージの集計には役立つが、Sparkのステージ別所要時間やエグゼキュータ使用率といった性能メトリクスは取得できない。スキューとリソース不足の切り分けには不十分。
CAWS Glue Data QualityでDQDLルールを評価し、入力データの品質スコアの推移から処理時間の変動を推定する
Glue Data Qualityは入力データのnullや範囲などを検証する品質機能であり、Sparkの実行プランや処理時間の内訳を可視化しない。性能ボトルネックの原因分析という目的そのものに合致しない。
DAWS CloudTrailでGlueジョブのStartJobRun呼び出し履歴を追跡し、実行時に渡されたパラメータの差分を調べる
CloudTrailはGlue APIの監査ログでStartJobRunの呼び出しやパラメータは追えるが、ジョブ内部のステージ実行状況やエグゼキュータのリソース使用率は記録しないため性能要因の切り分けには使えない。
解説
AWS GlueのJob Run InsightsとSpark UI(イベントログ)は、ジョブのステージ・タスク単位の実行時間、シャッフル量、エグゼキュータのCPU/メモリ使用率を可視化します。
特定タスクだけが極端に長い場合はデータスキュー、全体的にリソースが逼迫していればエグゼキュータ不足、というようにボトルネックの原因を切り分けでき、追加の計装なしで最小運用で分析できます。
選択肢BのLogs Insightsはエラーログの集計には有効だが、ステージ別の所要時間やリソース使用率は得られず性能要因の切り分けに使えない。
選択肢CのData Qualityは入力データの品質検証機能であり、Sparkの実行性能やスキューの分析とは目的が異なる。
選択肢DのCloudTrailはAPI呼び出しの監査ログでありジョブ起動の記録は残るが、内部のステージ実行やエグゼキュータ使用率は記録されない。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →