次の方法で共有


Fabric 向けの Apache Spark における高コンカレンシーモード

コンカレンシー モードが高い場合、互換性のある Spark ワークロードは、ワークロードごとに個別のセッションを開始するのではなく、実行中の 1 つの Spark セッションを共有できます。 このモードは、Fabric のノートブックとパイプラインのシナリオでよく使用されます。

この記事は、次の内容を理解するのに役立ちます。

  • 高コンカレンシー モードとは何か、どのような場合に使用するか。
  • セッション共有の要件。
  • 共有セッションの課金のしくみ。

標準モードでは、各ノートブックまたはパイプライン アクティビティが独自の Spark セッションを開始します。 高コンカレンシー モードでは、1 つの Spark アプリケーションが、各ワークロードに独自の読み取り/eval-print ループ (REPL) コアを割り当てることで、複数のワークロードをホストします。 各 REPL コアは実行状態を分離するため、あるワークロードのローカル変数は別のワークロードの変数を上書きしません。

共有セッションは既に実行されているため、後続のワークロードははるかに高速に開始できます。

注記

コンカレンシー モードが高いカスタム プールの場合、セッションの開始は標準の Spark セッションよりも最大 36 倍速くなる可能性があります。

主な機能

この図では、高コンカレンシー モードの 3 つの主要な特性を示します。

  • セキュリティ: セッション共有は、シングル ユーザーの境界内に留まります。
  • マルチタスク: ノートブックを切り替えて、新しい Spark セッションが作成または初期化されるのを待たずに作業を続行できます。
  • コスト効率: 共有セッションにより、リソース使用率が向上し、データ エンジニアリングおよびデータ サイエンス ワークロードのコンピューティング コストが削減されます。

Fabric での高コンカレンシー モードの動作を示す図。

セッション共有の要件

セッション共有は、次の条件が満たされたときに適用されます。

  • セッションは、シングル ユーザーの境界内にあります。
  • セッションでは、同じ既定の Lakehouse 構成が使用されます。
  • セッションでは、同じ Spark コンピューティング設定が使用されます。

要件が異なる場合、Fabric は別の Spark セッションを開始します。

セッションの初期化中に、ファブリックによって REPL コアが作成されます。 新しいワークロードが共有セッションに参加すると、これらの REPL コア間で FAIR スケジューリングを使用して Executor が割り当てられ、不足リスクが軽減されます。

課金の動作

高コンカレンシー モードを使用する場合、共有 Spark アプリケーションを開始する開始ノートブックまたはパイプライン アクティビティのみが課金されます。 同じ Spark セッションを共有する後続のセッションでは、個別の課金は発生しません。

  • ユーザーが Notebook 1 を起動すると、高コンカレンシー モードで Spark セッションが開始されます。
  • その後、 ノートブック 2、ノートブック3、ノートブック4、ノートブック 5 で同じセッションが共有されます。
  • この場合、Spark コンピューティングには Notebook 1 のみが課金されます。
  • 共有ノートブック (2 から 5) は個別に課金されません。

この動作は、開始ノートブックに対して使用状況が報告される 容量メトリックにも反映されます。

注記

パイプライン アクティビティにも同じ課金動作が適用されます。 Spark セッションを開始するノートブックまたはアクティビティのみが課金されます。