柔軟なノードタイプを使用してコンピュート起動の信頼性を向上
プレビュー
この機能は パブリック プレビュー段階です。
Databricksのクラシック コンピュート リソースは柔軟なノード タイプを使用するため、指定したインスタンス タイプが使用できない場合、コンピュート リソースは代替の互換性のあるインスタンス タイプにフォールバックできます。
この動作により、コンピュート起動中の容量障害 (在庫切れエラー) が減少し、コンピュート起動の信頼性が向上します。 フォールバックを備えたスポット インスタンスの場合、フレキシブル ノード タイプは、オンデマンド インスタンスにフォールバックする前に、さまざまなインスタンス タイプ間でインスタンスの取得を複数回試みることができます。これにより、オンデマンドではなくスポットとして実行されるインスタンスの割合が高くなり、総コンピュート コストが削減されます。
柔軟なノードタイプの仕組み
コンピュート リソースを起動すると、クラウド プロバイダーが指定したインスタンス タイプの容量を超えて実行することがあります。 これにより在庫切れエラーが発生します。
AWS_INSUFFICIENT_INSTANCE_CAPACITY_FAILURE
これらのエラーはスポットインスタンスでよく発生しますが、オンデマンドインスタンスでも発生する可能性があります。
柔軟なノード タイプを有効にすると、Databricks は互換性のあるインスタンス タイプの指定されたフォールバック リストを自動的に生成または使用します。優先インスタンス タイプが利用できない場合、Databricks はすぐに失敗するのではなく、これらのバックアップ インスタンス タイプを取得しようとします。
ワークスペースで柔軟なノードタイプを有効にする
ワークスペース管理者は、ワークスペース管理設定で柔軟なノード タイプを有効にすることができます。 有効にすると、ワークスペース内のすべての新しいクラシック コンピュート リソースは、明示的に無効にしない限り、フレキシブル ノード タイプを使用します。
- ワークスペース管理者として、設定ページに移動します。
- 「 コンピュート 」タブをクリックします。
- 自動フレキシブルノードタイプを有効にする 設定を切り替えます。
- Enabled : すべての新しいクラシック コンピュート リソースは、明示的に無効にしない限り、フレキシブル ノード タイプを自動的に使用します。
- 無効 : コンピュート リソース構成で明示的に
node_type_flexibility構成した場合、クラシック コンピュート リソースはフレキシブル ノード タイプのみを使用します。
このワークスペース全体の設定は、既存のコンピュート リソースには影響しません。 無効にしても、ユーザーはカスタム フォールバック リストを使用してworker_node_type_flexibilityまたはdriver_node_type_flexibilityフィールドを明示的に構成することで、個々のコンピュート リソースに対して柔軟なノード タイプを構成できます。 ユーザーがこれらのフィールドを設定できないようにするには、ワークスペース管理者はコンピュート ポリシーを使用できます。 柔軟なノード タイプ ポリシーの例を参照してください。
カスタムフォールバックリストを指定する
ワークスペースでフレキシブル ノード タイプが有効になっている場合、 Databricks新しいコンピュート リソースに対して互換性のあるインスタンス タイプのフォールバック リストを自動的に生成します。
自動的に生成されたフォールバック リストを使用しない場合は、代わりに独自のフォールバック リストを指定できます。さらに、ワークスペースでフレキシブル ノード タイプが無効になっている場合でも、コンピュート リソースのカスタム フォールバック リストを指定できます。 互換性があるのは特定のインスタンスの種類のみです。フォールバックインスタンスタイプの要件を参照してください。互換性のあるインスタンス タイプのリファレンスについては、柔軟なノード タイプの互換性リファレンスを参照してください。
カスタム フォールバック リストは、 APIを使用してコンピュートを構成する場合にのみサポートされます。 リファレンスAPI ドキュメントを参照してください。
たとえば、次の構成では、必要に応じてコンピュート リソースがどのインスタンス タイプにフォールバックするかを指定します。
"worker_node_type_flexibility": {
"alternate_node_type_ids": [
"Standard_E64as_v5"
]
},
"driver_node_type_flexibility": {
"alternate_node_type_ids": [
"Standard_D64as_v5"
]
},
フォールバックインスタンスタイプの要件
フォールバック インスタンス タイプは、コンピュートの優先インスタンス タイプと互換性がある必要があります。 フォールバックインスタンスタイプのリストは、次の要件を満たしている必要があります。
-
優先インスタンス タイプと同じ vCPU 数とメモリ (フォールバック インスタンスには優先インスタンス タイプのメモリの 100% ~ 110% が必要です)
-
優先インスタンスタイプと同じ数のローカルディスクとディスクサイズ
-
優先インスタンスタイプと同じ CPU アーキテクチャ (すべて ARM またはすべて x86)
-
優先インスタンスタイプと同じ OS イメージと Photon サポート
-
GPU インスタンス タイプはありません (GPU はサポートされていません)
-
最大 5 つの固有のフォールバック インスタンス タイプ
-
仮想インスタンス タイプ (m-fleet など) は、すでに同様のフォールバック動作を提供しているため、優先インスタンス タイプとして使用したり、フォールバック リストで使用することはできません。
プールで柔軟なノードタイプを使用する
プールのフォールバック リストをカスタマイズすることもできます。プール APIで、 node_type_flexibilityフィールドを設定してフォールバックインスタンスタイプを指定します。例えば:
"node_type_flexibility": {
"alternate_node_type_ids": ["Standard_D64as_v5"]
}
プールは、最小のアイドル数を維持するための柔軟なインスタンス タイプの使用をサポートしていません。プールからのコンピュート起動が試行される場合、プールはフォールバック インスタンス タイプを使用して VM を起動することしかできません。 minIdleカウントの事前ウォーミングでは、優先インスタンス タイプのみが使用されます。
取得したインスタンスタイプを表示する
柔軟なノード タイプを使用する場合、コンピュート リソースはさまざまなインスタンス タイプの組み合わせで構成される場合があります。 すべてのフォールバックインスタンスタイプは優先タイプと互換性があり、同じ vCPU 数、メモリ、ディスクレイアウト、CPU アーキテクチャ、OS イメージを維持して、ワークロードが正しく実行されるようにします。
コンピュート リソース用に取得されたインスタンス タイプを表示できます。
- [コンピュートの詳細] ページで、 [終了] ボタンの横にある 3 つの点をクリックし、 JSON表示] を選択します。
- 各エグゼキューターの
node_type_idフィールドを確認して、どのインスタンス タイプが実行されているかを確認します。
Get Cluster info APIを使用して、この情報をプログラムで取得することもできます。 さらに、システムテーブルへのアクセス権限を持つユーザーは、 node_timelinesテーブルをクエリできます。 ノードタイムラインテーブルスキーマを参照してください。
コンピュート リソースでフレキシブル ノード タイプを無効にする
Databricks では、特定のインスタンスの種類に厳しい要件がない限り、柔軟なノードの種類を有効にしておくことをお勧めします。
別のインスタンス タイプにフォールバックするのではなく、コンピュートの起動が失敗することを希望する場合は、個々のコンピュート リソース レベルで柔軟なノードの動作を無効にすることができます。 これは、 APIを使用する場合にのみサポートされます。 フレキシブル ノード タイプを無効にするには、コンピュート構成でフレキシブル ノード タイプ フィールドを空に設定します。 例えば:
"worker_node_type_flexibility": {
"alternate_node_type_ids": []
},
"driver_node_type_flexibility": {
"alternate_node_type_ids": []
}