単一ノードクラスター

1つのノードクラスターは、Spark で構成されるクラスターで、Spark ワーカーは含まれません。 このようなクラスターでは、Spark ジョブと、 Delta Lakeを含むすべての spark データソースがサポートされます。 これに対し、Standard クラスターでは、Spark ジョブを実行するために少なくとも1つの Spark ワーカーが必要です。

単一ノードクラスターは、次のような場合に役立ちます。

  • Spark を必要とするシングルノード機械学習ワークロードを実行してデータを読み込み、保存する
  • ライトウェイト探索データ分析 (EDA)

単一ノード クラスターを作成する

単一ノードクラスターを作成するには、クラスター を構成するときに、クラスターモードのドロップダウンリストで [単一ノード] を選択します。

シングルノードクラスターモード

単一ノード クラスターのプロパティ

1つのノードクラスターには、次のプロパティがあります。

  • クラスター上の論理コアと同じ数の実行プログラムスレッドで Spark をローカルに実行します (driver-1 のコア数)。
  • ワーカーが0で、ドライバーノードがマスターとワーカーの両方として動作しています。
  • 実行プログラム stderr、stdout、および log4j の各ログは、ドライバーログに記録されます。
  • 標準クラスターに変換することはできません。 代わりに、モードを [標準] に設定して新しいクラスターを作成します。

制限事項

  • 大規模なデータ処理では、単一ノードクラスターを使用しないことをお勧めします。 単一ノードクラスター上のリソースを超える場合は、標準モードクラスターを使用することをお勧めします。

  • 単一ノードクラスターを共有することはお勧めしません。 すべてのワークロードが同じノードで実行されるため、リソースの競合が発生する可能性が高くなります。 Databricks では、共有クラスターの標準モードを推奨しています。

  • Worker の最小数を0に設定することによって、Standard クラスターを1つのノードクラスターに変換することはできません。 代わりに、モードを [単一ノード] に設定して新しいクラスターを作成します。

  • 単一ノードクラスターはプロセス分離と互換性がありません。

  • GPU スケジューリングは、単一ノードクラスターでは有効になっていません。

  • 単一ノードクラスターでは、Spark は UDT 列を含む Parquet ファイルを読み取ることができず、次のエラーメッセージが返されることがあります。

    The Spark driver has stopped unexpectedly and is restarting. Your notebook will be automatically reattached.
    

    この問題を回避するには、 spark.databricks.io.parquet.nativeReader.enabled Spark 構成をに設定します。 false

    spark.conf.set("spark.databricks.io.parquet.nativeReader.enabled", False)
    

REST API

クラスター API を使用して単一ノードクラスターを作成するための要求については、「 クラスターの作成例 」を参照してください。

単一ノードクラスターポリシー

クラスターポリシー を使用すると、単一ノードクラスターのクラスター構成が簡単になります。

わかりやすい例として、クラスター作成アクセス許可を持たないデータサイエンスチームのクラスターを管理する場合、管理者は、最大10個のシングルノード対話型クラスターを合計で作成するようにチームに許可することが必要になる場合があります。 これは、 インスタンスプールクラスターポリシー、および単一ノードクラスターモードを使用して実行できます。

  1. プールを作成します。 最大容量を10に設定し、ローカルストレージの自動スケールを有効にし、インスタンスの種類と Databricks Runtime バージョンを選択することができます。 URL からプール ID を記録します。

  2. クラスターポリシーを作成します。 インスタンスプール ID とノードの種類 ID のポリシーの値は、プールのプロパティと一致している必要があります。 ニーズに合わせて制約を緩和できます。 「 クラスターポリシーの管理」を参照してください。

  3. チームメンバーにクラスターポリシーを付与します。 [ユーザーとグループの管理] を使用すると、ユーザー管理を簡略化できます。

    {
      "spark_conf.spark.databricks.cluster.profile": {
        "type": "fixed",
        "value": "singleNode",
        "hidden": true
      },
      "instance_pool_id": {
        "type": "fixed",
        "value": "singleNodePoolId1",
        "hidden": true
      },
      "spark_version": {
        "type": "fixed",
        "value": "7.3.x-cpu-ml-scala2.12",
        "hidden": true
      },
      "autotermination_minutes": {
        "type": "fixed",
        "value": 120,
        "hidden": true
      },
      "num_workers": {
        "type": "fixed",
        "value": 0,
        "hidden": true
      },
      "docker_image.url": {
        "type": "forbidden",
        "hidden": true
      }
    }
    

単一ノードのジョブクラスターポリシー

ジョブのクラスターポリシーを設定するには、同様のクラスターポリシーを定義します。 cluster_type"Type" を "fixed" に設定し、"value" を "job" に設定し、への参照をすべて削除することを忘れないで auto_termination_minutes ください。

{
  "cluster_type": {
    "type": "fixed",
    "value": "job"
  },
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "fixed",
    "value": "singleNode",
    "hidden": true
  },
  "instance_pool_id": {
    "type": "fixed",
    "value": "singleNodePoolId1",
    "hidden": true
  },
  "num_workers": {
    "type": "fixed",
    "value": 0,
    "hidden": true
  },
  "spark_version": {
    "type": "fixed",
    "value": "7.3.x-cpu-ml-scala2.12",
    "hidden": true
  },
  "docker_image.url": {
    "type": "forbidden",
    "hidden": true
  }
}