データ接続と統合パイプラインの最適化とデバッグSparkSpark UI

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Spark UI

Spark には独自の Web UI ↗ があり、Foundry の Spark の詳細ページを補完する次のような追加情報を表示します。

  • エグゼキューターの起動やシャットダウンなど、エグゼキューターのライフサイクル情報。
  • メモリー使用量のピーク値を含む、タスクとエグゼキューターのメトリクスのより多くのサンプル。
  • 実行中に使用されたすべての Spark 設定。

Spark UI を表示する

Transforms ジョブの Spark UI を表示するには、ジョブをデバッグジョブとして再実行します。Spark UI ボタンが表示され、このボタンを選択すると Spark の Web UI が開きます。

ジョブをデバッグジョブとして再実行する Spark UI ボタン

Spark イベントは、1〜2分の遅延後に Spark UI に表示されます。

Foundry での Spark UI の使用

Spark の Web UI は詳細な情報を豊富に表示しますが、その表示方法は Foundry 向けに調整されていません。以下では、Foundry ジョブで Spark の Web UI を使う際のアドバイスを紹介します。

SQL の実行

Spark は SQL クエリをメインクエリと1個以上のサブクエリに分割できます。場合によっては、メインクエリよりもサブクエリのほうが注目すべき情報を含んでいます。Foundry での多くのデータセット書き込みがこれに該当します。

Spark UI で 「Writing dataset ...」 という SQL 実行を表示すると、サブ実行IDの下に、その書き込みのクエリグラフへのリンクがあります。

データセット書き込みクエリ メインクエリ0には情報が不足している サブクエリ1にはクエリグラフが含まれる

コンテキストのウォームアップ

Spark UI のジョブタブでは、Transforms ジョブが最初に count ジョブを起動することがわかります。count ジョブの目的は、ランタイムが追加のセットアップ(依存関係のインストールを含む)を行っている間に、エグゼキューターの割り当てを早期に要求することです。これにより、トランスフォームの実行準備が整うまでにエグゼキューターが利用可能になる可能性が高まります。

エグゼキューターを早期に要求する count ジョブ