Kluster med en nod

Ett kluster med en nod är ett kluster som består av en Apache Spark drivrutin och inga Spark-arbetare. Ett kluster med en nod stöder Spark-jobb och alla Spark-datakällor, inklusive Delta Lake. Ett standardkluster kräver minst en Spark-arbetsroll för att köra Spark-jobb.

Kluster med en nod är användbara för:

  • Maskininlärningsarbetsbelastningar med en nod som använder Spark för att läsa in och spara data
  • Förenklad undersökande dataanalys

Skapa ett kluster med enskild nod

Om du vill skapa ett kluster med en nod anger du Klusterläge till Enskild nod när du konfigurerar ett kluster.

Single Node cluster mode

Egenskaper för ennodskluster

Ett kluster med en nod har följande egenskaper:

  • Kör Spark lokalt.
  • Drivrutinen fungerar både som huvudnod och arbetsnod, utan arbetsnoder.
  • Skapar en körningstråd per logisk kärna i klustret, minus 1 kärna för drivrutinen.
  • Alla stderrstdout utdata, log4j och loggutdata sparas i drivrutinsloggen.
  • Ett kluster med en ’ nod kan inte konverteras till ett standardkluster. Om du vill använda ett standardkluster skapar du klustret och kopplar notebook-datorn till det.

Begränsningar

  • Storskalig databehandling tar slut på resurser i ett kluster med en nod. För dessa arbetsbelastningar rekommenderar Databricks att du använder ett standardlägeskluster.

  • Kluster med en nod är inte utformade för att delas. För att undvika resurskonflikter rekommenderar Databricks att du använder ett standardlägeskluster när klustret måste delas.

  • Ett standardlägeskluster ’ kan inte skalas till 0 arbetare. Använd ett kluster med en nod i stället.

  • Kluster med en nod är inte kompatibla med processisolering.

  • GPU-schemaläggning är inte aktiverat på kluster med en nod.

  • Spark kan inte läsa Parquet-filer med en UDT-kolumn i kluster med en nod. Följande felmeddelande resulterar:

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

    Du kan komma runt det här problemet genom att inaktivera den interna Parquet-läsaren:

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

REST API

Du kan använda kluster-API:et för att skapa ett kluster med en nod.

Princip för kluster med en nod

Klusterprinciper förenklar klusterkonfigurationen för kluster med en nod.

Ta ett exempel på ett datavetenskapsteam vars medlemmar inte har behörighet att skapa kluster. En administratör kan skapa en klusterprincip som ger teammedlemmar behörighet att skapa ett maximalt antal kluster med en nod med hjälp av pooler och klusterprinciper:

  1. Skapa en pool:

    1. Ange Maxkapacitet till .
    2. I Autopilot-alternativaktiverar du autoskalning aktiverat för lokal lagring.
    3. Ange Instanstyp tillKluster med en nod.
    4. Välj en Azure Databricks version. Databricks rekommenderar att du använder den senaste versionen om det är möjligt.
    5. Klicka på Skapa.

    Egenskapssidan ’ för poolen visas. Anteckna sidan pool-ID och instanstyp-ID för den nyligen skapade poolen.

  2. Skapa en klusterprincip:

    • Ange pool-ID och instanstyp-ID från poolegenskaperna från poolen.
    • Ange begränsningar efter behov.
  3. Bevilja klusterprincipen till gruppmedlemmarna. Du kan använda Hantera användare och grupper för att förenkla användarhanteringen.

    {
      "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
      }
    }
    

Princip för jobbkluster med en nod

Om du vill konfigurera en klusterprincip för jobb kan du definiera en liknande klusterprincip. Ange cluster_type.type till fixed och till cluster_type.valuejob . Ta bort alla referenser till 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
  }
}