Cloudera AltusでWorkload Analyticsの出力を見てみる
こんにちは、小澤です。
Cloudera Altusでは、Environment作成時にWorkload Analyticsを有効にしていると、実行したジョブに関する情報を確認することができます。 今回は、どういった情報が確認できるのかを見ていきたいと思います。
Analyticsの出力を見る
Workload Analyticsを有効にしているEnvironmentを使用して作成したクラスタでジョブを実行すると、 ジョブの詳細画面でAnalyticsという項目が選択できます。
選択すると以下のような画面が表示されます。
失敗したジョブの場合、以下のように失敗したことがわかる状態になっています。 この状態で、失敗した箇所を選択することで、どのようなエラーが発生したのかを確認できるようになっています。
実行したジョブの詳細を確認する
Execution Detailsタブでは、実行したジョブの詳細を確認できます。
左側には処理全体の流れが表示されています。 今回は、Sparkのジョブなので、各Stageの情報が表示されています。
右側には現在選択中の項目に関する情報が表示されます。 ここからさらに各項目を選択していくことで、その内容を確認することができます。
例えば、Executor Summaryを選択すると、以下のように実行時のメトリックスを確認することができます。
Driver Logsを選択すると、別画面で実行時のログも確認できます。 こちらは通常のログ出力と同様ですので、普段からHadoopを利用していてこちらの方が見慣れている場合は、 問題が起きた際などはこちらから確認することも可能です。
View SQL Executionsでは、loadやsave, showなど実際に実行された処理の確認も行えます。
個々のStageを選択するとそのStageの実行に関する情報を確認できます。
View RDD Graphを選択することで、そのStageのDAGを確認することも可能です。
過去のジョブとの比較をする
AltusのWorkload Analyticsでは、Trandsタブから過去の同じジョブとの比較が可能です。
これは、毎回同じクラスタである必要はなく、ジョブ実行時にその都度クラスタを作成しても同様に比較可能なようです。 これによって、定期的に実行する必要のある処理などを行う際に状況を監視して、外れ値のとなっているような時に問題がありそうなどといった確認が行いやすくなります。
(ちなみに今回は、既存のジョブのCloneして利用しています。 同じジョブと判定される詳細な条件が私の方で把握しきれていないので、ご存知の方がいましたら教えていただけるとありがたいです。)
※ 追記
こちら、情報をいただきました。
同一のジョブかの判断は、ジョブ名で行っているようです。
また、今回は実行回数が少ないため(?)か、表示されていないのですが、Baselineタブから普段の実行との比較で各メトリックスの値を出してくれるようです。 より詳細に問題がある点を調べるにはこちらも役に立つでしょう。
おわりに
今回は、Cloudera AltusのWorkload Analyticsを有効にした際に確認できる情報について書かせていただきました。
ここで紹介した意外にも確認可能な項目は多数あります。 また、私の方でも全てを把握しきれているとは言えない状況でもありますが、実際にご利用いただくと動かしたクラスタに依存しないジョブ単位での実行結果確認や比較が非常に便利であることが実感いただけるとかと思います。