次の方法で共有


柔軟なノード タイプを使用してコンピューティング起動の信頼性を向上させる

Azure Databricks のクラシック コンピューティング リソースでは、柔軟なノード の種類が使用されます。これにより、指定したインスタンスの種類が使用できない場合に、コンピューティング リソースを代替の互換性のあるインスタンスの種類にフォールバックできます。

この動作により、コンピューティングの起動中の容量エラー (在庫切れエラー) を減らすことで、コンピューティングの起動の信頼性が向上します。 フォールバックを使用するスポット インスタンスの場合、フレキシブル ノードタイプは、オンデマンドインスタンスにフォールバックする前に、異なるインスタンスタイプ間でインスタンスを複数回取得しようとします。 これにより、オンデマンドではなくスポットとして実行されるインスタンスの割合が高くなり、コンピューティング コストの合計が削減されます。

柔軟なノードタイプがどのように機能するか

コンピューティング リソースを起動すると、クラウド プロバイダーが指定したインスタンスの種類の容量を使い切ることがあります。 これにより、在庫切れエラーが発生します。

CLOUD_PROVIDER_RESOURCE_STOCKOUT

これらのエラーはスポット インスタンスの方が一般的ですが、オンデマンド インスタンスでも発生する可能性があります。

柔軟なノードの種類を有効にすると、Azure Databricks は、互換性のあるインスタンスの種類の指定されたフォールバック リストを自動的に生成または使用します。 優先するインスタンスの種類が使用できない場合、Azure Databricks は、すぐに失敗するのではなく、これらのバックアップ インスタンスの種類の取得を試みます。

ワークスペースで柔軟なノード タイプを有効にする

ワークスペース管理者は、ワークスペース管理者設定で柔軟なノード タイプを有効にすることができます。 有効にすると、ワークスペース内のすべての新しいクラシック コンピューティング リソースで、明示的に無効にしない限り、フレキシブル ノード タイプが使用されます。

  1. ワークスペース管理者として [設定] ページに移動します。
  2. [ コンピューティング ] タブをクリックします。
  3. [ 自動フレキシブル ノード タイプを有効にする] 設定を切り替えます。
    • 有効: 明示的に無効にしない限り、すべての新しいクラシック コンピューティング リソースでフレキシブル ノード タイプが自動的に使用されます。
    • 無効: クラシック コンピューティング リソースでは、コンピューティング リソース構成で node_type_flexibility を明示的に構成した場合にのみ、柔軟なノードの種類が使用されます。

このワークスペース全体の設定は、既存のコンピューティング リソースには影響しません。 無効にしても、ユーザーはカスタム フォールバック リストを使用して worker_node_type_flexibility または driver_node_type_flexibility フィールドを明示的に構成することで、個々のコンピューティング リソースの柔軟なノードの種類を構成できます。 ユーザーがこれらのフィールドを構成できないようにするために、ワークスペース管理者はコンピューティング ポリシーを使用できます。 フレキシブル ノード タイプ ポリシーの例を参照してください。

カスタム フォールバック リストを指定する

ワークスペースで柔軟なノードの種類が有効になっている場合、Azure Databricks によって、新しいコンピューティング リソースの互換性のあるインスタンスの種類のフォールバック リストが自動的に生成されます。

自動生成されたフォールバック リストを使用しない場合は、代わりに独自のフォールバック リストを指定できます。 さらに、ワークスペースでフレキシブル ノードの種類が無効になっている場合でも、コンピューティング リソースのカスタム フォールバック リストを指定できます。 互換性があるのは、特定のインスタンスの種類のみです。 フォールバック インスタンスの種類の要件を参照してください。 互換性のあるインスタンスの種類のリファレンスについては、 フレキシブル ノードの種類の互換性に関するリファレンスを参照してください

カスタム フォールバック リストは、API を使用してコンピューティングを構成する場合にのみサポートされます。 クラスター API リファレンス ドキュメントを参照してください。

たとえば、次の構成では、コンピューティング リソースが必要に応じてフォールバックするインスタンスの種類を指定します。


  "worker_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },
  "driver_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },

フォールバック インスタンスの種類の要件

フォールバック インスタンスの種類は、コンピューティングの優先インスタンスの種類と互換性がある必要があります。 フォールバック インスタンスの種類の一覧は、次の要件を満たしている必要があります。

  • 優先インスタンスの種類と同じ vCPU 数とメモリ (フォールバック インスタンスは、優先インスタンスの種類のメモリの 100% から 110% の間である必要があります)
  • 優先インスタンスの種類と同じ数のローカル ディスクとディスク サイズ
  • 優先インスタンスの種類 (すべて ARM またはすべて x86) と同じ CPU アーキテクチャ
  • 優先インスタンスの種類と同じ OS イメージと Photon のサポート
  • GPU インスタンスの種類がありません (GPU はサポートされていません)
  • 最大 5 種類の一意のフォールバック インスタンス
  • すべてのインスタンスの種類は、ストレージのサポートが一貫している必要があります。すべてのインスタンスタイプがPREMIUM_LRSストレージをサポートするか、いずれもサポートしていないかのどちらかでなければなりません。

プールでフレキシブル ノード タイプを使用する

プールのフォールバック リストをカスタマイズすることもできます。 Pools API で、フォールバック インスタンスの種類を指定するように node_type_flexibility フィールドを設定します。 例えば次が挙げられます。

"node_type_flexibility": {
    "alternate_node_type_ids": ["Standard_L8s_v2"]
  }

プールでは、最小アイドル数を維持するための柔軟なインスタンスタイプの使用はサポートされていません。 プールからコンピューティングの起動が試行された場合にのみ、フォールバック インスタンスの種類を使用して VM を起動できます。 minIdleカウントを事前ウォーミングする場合は、優先インスタンスの種類のみが使用されます。

取得したインスタンスの種類を表示する

柔軟なノード の種類を使用する場合、コンピューティング リソースはさまざまなインスタンスの種類で構成される場合があります。 すべてのフォールバック インスタンスの種類は、好みの種類と互換性があり、ワークロードが正しく実行されるように、同じ vCPU 数、メモリ、ディスク レイアウト、CPU アーキテクチャ、OS イメージを維持します。

コンピューティング リソースに対して取得されたインスタンスの種類を確認できます。

  1. コンピューティングの詳細ページで、[ 終了 ] ボタンの横にある 3 つのドットをクリックし、[ JSON の表示] を選択します。
  2. 実行しているインスタンスの種類を確認するには、各 Executor の node_type_id フィールドを確認します。

クラスター 情報の取得 API を使用して、プログラムでこの情報を取得することもできます。 さらに、システム テーブルにアクセスする権限を持つユーザーは、 node_timelines テーブルに対してクエリを実行できます。 「ノード タイムライン テーブルのスキーマ」をご覧ください。

コンピューティング リソースで柔軟なノード の種類を無効にする

Databricks では、特定のインスタンスの種類に対する厳密な要件がない限り、柔軟なノード タイプを有効にしておくことをお勧めします。

代替インスタンスの種類にフォールバックするのではなく、コンピューティングの起動を失敗させる場合は、個々のコンピューティング リソース レベルで柔軟なノード動作を無効にすることができます。 これは、クラスター API を使用する場合にのみサポートされます。 フレキシブル ノード タイプを無効にするには、コンピューティング構成でフレキシブル ノード タイプ フィールドを空として設定します。 例えば次が挙げられます。

"worker_node_type_flexibility": {
  "alternate_node_type_ids": []
},
"driver_node_type_flexibility": {
  "alternate_node_type_ids": []
}