Benutzerdefiniertes Image für Managed Service for Apache Spark erstellen

Sie können einen Managed Service for Apache Spark-Cluster mit einem benutzerdefinierten Image erstellen, das Ihre vorinstallierten Pakete enthält. Auf dieser Seite erfahren Sie, wie Sie ein benutzerdefiniertes Image erstellen und in einem Managed Service for Apache Spark-Cluster installieren.

Überlegungen und Einschränkungen zur Nutzung

  • Lebensdauer benutzerdefinierter Images:Damit die Cluster die neuesten Dienstupdates und Fehlerkorrekturen erhalten, ist die Erstellung von Clustern mit einem benutzerdefinierten Image auf 365 Tage ab dem Erstellungsdatum des benutzerdefinierten Images begrenzt. Beachten Sie, dass vorhandene Cluster, die mit einem benutzerdefinierten Image erstellt wurden, unbegrenzt ausgeführt werden können.

    Wenn Sie Cluster mit einem bestimmten benutzerdefinierten Image für einen Zeitraum von mehr als 365 Tagen erstellen möchten, müssen Sie möglicherweise die Automatisierung verwenden. Weitere Informationen finden Sie unter Cluster mit einem abgelaufenen benutzerdefinierten Image erstellen.

  • Nur Linux:Die Anleitung in diesem Dokument gilt nur für Linux-Betriebssysteme. Andere Betriebssysteme werden möglicherweise in zukünftigen Releases von Managed Service for Apache Spark unterstützt.

  • Unterstützte Basis-Images:Für benutzerdefinierte Image-Builds muss ein Managed Service for Apache Spark-Basis-Image verwendet werden. Die folgenden Basis-Images werden unterstützt: Debian, Rocky Linux und Ubuntu.

  • Optionale Komponenten verwenden:

    Unabhängig vom Basis-Image, das für Ihr benutzerdefiniertes Image verwendet wird, müssen Sie beim Erstellen des Clusters optionale Komponenten auflisten oder auswählen.

    Beispiel: Google Cloud CLI-Befehl zum Erstellen eines Clusters:

    gcloud dataproc clusters create CLUSTER_NAME
        --image=CUSTOM_IMAGE_URI  \
        --optional-components=COMPONENT_NAME \
        ... other flags
    

    Wenn der Komponentenname beim Erstellen des Clusters nicht angegeben wird, wird die optionale Komponente, einschließlich aller benutzerdefinierten Betriebssystempakete und -konfigurationen, gelöscht.

  • Gehostete benutzerdefinierte Images verwenden:Wenn Sie ein benutzerdefiniertes Image verwenden, das in einem anderen Projekt gehostet wird, muss das Dienstkonto des Managed Service for Apache Spark-Dienst-Agents in Ihrem Projekt die Berechtigung compute.images.get für das Image im Hostprojekt haben. Sie können diese Berechtigung erteilen, indem Sie dem Dienstkonto des Managed Service for Apache Spark-Dienst-Agents Ihres Projekts die Rolle roles/compute.imageUser für das gehostete Image zuweisen (siehe Benutzerdefinierte Images in einer Organisation freigeben).

  • Sichere Boot-MOK-Secrets (Machine Owner Key) verwenden:Wenn Sie Secure Boot mit Ihrem benutzerdefinierten Managed Service for Apache Spark-Image aktivieren möchten, gehen Sie so vor:

    1. Aktivieren Sie die Secret Manager API (secretmanager.googleapis.com. Managed Service for Apache Spark generiert und verwaltet ein Schlüsselpaar mit dem Secret Manager-Dienst.

    2. Fügen Sie dem Befehl generate_custom_image.py das Flag --service-account="SERVICE_ACCOUNT" hinzu, wenn Sie ein benutzerdefiniertes Image erstellen. Hinweis: Sie müssen dem Dienstkonto die Rolle „Secret Manager Viewer“ (roles/secretmanager.viewer) für das Projekt und die Rolle „Secret Manager Accessor“ (roles/secretmanager.secretAccessor) für die öffentlichen und privaten Secrets zuweisen.

      Weitere Informationen mit Beispielen finden Sie in der Datei README.md und anderen Dateien im Verzeichnis „examples/secure-boot“ des GoogleCloudDataproc/custom-images-Repositorys auf GitHub.

      Sicherer Start deaktivieren:Standardmäßig generieren und verwalten die benutzerdefinierten Image-Skripts für Managed Service for Apache Spark ein Schlüsselpaar mit Secret Manager, wenn sie in einem Managed Service for Apache Spark-Cluster ausgeführt werden. Wenn Sie kein Secure Boot mit Ihrem benutzerdefinierten Image verwenden möchten, fügen Sie dem generate_custom_image.py-Befehl das Flag --trusted-cert="" (leerer Flag-Wert) hinzu, wenn Sie Ihr benutzerdefiniertes Image generieren.

Hinweis

Richten Sie Ihr Projekt ein, bevor Sie Ihr benutzerdefiniertes Bild generieren.

Projekt einrichten

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the Dataproc API, Compute Engine API, and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  4. Install the Google Cloud CLI.

  5. Configure the gcloud CLI to use your federated identity.

    For more information, see Sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. Python 3.11 oder höher installieren
  8. Bereiten Sie ein Anpassungsscript vor, mit dem benutzerdefinierte Pakete installiert und/oder Konfigurationen aktualisiert werden, z. B.:
      #! /usr/bin/bash
      apt-get -y update
      apt-get install python-dev
      apt-get install python-pip
      pip install numpy
      

Cloud Storage-Bucket in Ihrem Projekt erstellen

  1. Wechseln Sie in der Cloud de Confiance Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie auf Erstellen.
  3. Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.
    1. Führen Sie im Abschnitt Einstieg die folgenden Schritte aus:
      • Geben Sie einen global eindeutigen Namen ein, der den Anforderungen für Bucket-Namen entspricht.
      • So fügen Sie ein Bucket-Label hinzu: Maximieren Sie den Bereich Labels (), klicken Sie auf Label hinzufügen und geben Sie key und value für Ihr Label an.
    2. Gehen Sie im Bereich Speicherort für Daten auswählen so vor:
      1. Standorttyp auswählen.
      2. Wählen Sie im Drop-down-Menü Standorttyp einen Standort aus, an dem die Daten Ihres Buckets dauerhaft gespeichert werden.
        • Wenn Sie den Standorttyp Dual-Region auswählen, können Sie auch die Turboreplikation aktivieren, indem Sie das entsprechende Kästchen anklicken.
      3. Wenn Sie die Bucket-übergreifende Replikation einrichten möchten, wählen Sie Bucket-übergreifende Replikation über Storage Transfer Service hinzufügen aus und führen Sie die folgenden Schritte aus:

        Bucket-übergreifende Replikation einrichten

        1. Wählen Sie im Menü Bucket einen Bucket aus.
        2. Klicken Sie im Bereich Replikationseinstellungen auf Konfigurieren, um die Einstellungen für den Replikationsjob zu konfigurieren.

          Der Bereich Bucket-übergreifende Replikation konfigurieren wird angezeigt.

          • Wenn Sie die zu replizierenden Objekte nach dem Objektnamenspräfix filtern möchten, geben Sie ein Präfix ein, mit dem Sie Objekte ein- oder ausschließen möchten, und klicken Sie dann auf  Präfix hinzufügen.
          • Wenn Sie eine Speicherklasse für die replizierten Objekte festlegen möchten, wählen Sie im Menü Speicherklasse eine Speicherklasse aus. Wenn Sie diesen Schritt überspringen, wird für replizierte Objekte standardmäßig die Speicherklasse des Ziel-Buckets verwendet.
          • Klicken Sie auf Fertig.
    3. Gehen Sie im Bereich Speicherort für Daten auswählen so vor:
      1. Wählen Sie eine Standardspeicherklasse für den Bucket oder Autoclass für die automatische Speicherklassenverwaltung der Daten Ihres Buckets aus.
      2. Wenn Sie den hierarchischen Namespace aktivieren möchten, wählen Sie im Bereich Speicher für datenintensive Arbeitslasten optimieren die Option Hierarchischen Namespace für diesen Bucket aktivieren aus.
    4. Wählen Sie im Abschnitt Zugriff auf Objekte steuern aus, ob der Bucket Verhinderung des öffentlichen Zugriffs durchsetzt, und wählen Sie eine Zugriffssteuerungsmethode für die Objekte Ihres Buckets aus.
    5. Führen Sie im Bereich Auswählen, wie Objektdaten geschützt werden die folgenden Schritte aus:
      • Wählen Sie unter Datenschutz die gewünschten Optionen für Ihren Bucket aus.
        • Klicken Sie zum Aktivieren des vorläufigen Löschens das Kästchen Richtlinie für vorläufiges Löschen (zur Datenwiederherstellung) an und geben Sie die Anzahl der Tage an, die Sie Objekte nach dem Löschen aufbewahren möchten.
        • Wenn Sie die Objektversionsverwaltung festlegen möchten, klicken Sie das Kästchen Objektversionsverwaltung (zur Versionsverwaltung) an und geben Sie die maximale Anzahl von Versionen pro Objekt und die Anzahl der Tage an, nach denen die nicht aktuellen Versionen ablaufen.
        • Klicken Sie das Kästchen Aufbewahrung (zur Einhaltung von Vorschriften) an, um die Aufbewahrungsrichtlinie für Objekte und Buckets zu aktivieren, und gehen Sie dann so vor:
          • Klicken Sie auf das Kästchen Objektaufbewahrung aktivieren, um die Objektaufbewahrungssperre zu aktivieren.
          • Wenn Sie Bucket Lock aktivieren möchten, klicken Sie das Kästchen Bucket-Aufbewahrungsrichtlinie festlegen an und wählen Sie eine Zeiteinheit und eine Zeitdauer für die Aufbewahrungsdauer aus.
      • Um auszuwählen, wie Ihre Objektdaten verschlüsselt werden, maximieren Sie den Bereich Datenverschlüsselung () und wählen Sie eine Methode für die Datenverschlüsselung aus.
  4. Klicken Sie auf Erstellen.

Benutzerdefiniertes Bild generieren

Sie verwenden generate_custom_image.py, ein Python-Programm, um ein benutzerdefiniertes Managed Service for Apache Spark-Image zu erstellen.

Funktionsweise

Im generate_custom_image.py-Programm wird eine temporäre Compute Engine-VM-Instanz mit dem angegebenen Managed Service for Apache Spark-Basis-Image gestartet. Anschließend wird das Anpassungsskript in der VM-Instanz ausgeführt, um benutzerdefinierte Pakete zu installieren und/oder Konfigurationen zu aktualisieren. Nachdem das Anpassungsskript abgeschlossen ist, wird die VM-Instanz heruntergefahren und ein benutzerdefiniertes Managed Service for Apache Spark-Image aus dem VM-Instanzlaufwerk erstellt. Die temporäre VM wird gelöscht, nachdem das benutzerdefinierte Image erstellt wurde. Das benutzerdefinierte Image wird gespeichert und kann zum Erstellen von Managed Service for Apache Spark-Clustern verwendet werden.

Im generate_custom_image.py-Programm wird die gcloud CLI verwendet, um mehrstufige Workflows in Compute Engine auszuführen.

Code ausführen

Gabeln oder klonen Sie die Dateien auf GitHub unter Managed Service for Apache Spark-Benutzerdefinierte Images.

Führen Sie dann das generate_custom_image.py-Skript aus, damit Managed Service for Apache Spark Ihr benutzerdefiniertes Image generiert und speichert.

python3 generate_custom_image.py \
    --image-name=CUSTOM_IMAGE_NAME \
    [--family=CUSTOM_IMAGE_FAMILY_NAME] \
    --dataproc-version=IMAGE_VERSION \
    --customization-script=LOCAL_PATH \
    --zone=ZONE \
    --gcs-bucket=gs://BUCKET_NAME \
    [--no-smoke-test]

Erforderliche Flags

  • --image-name: der Ausgabename für Ihr benutzerdefiniertes Image.

  • --dataproc-version: Die Image-Version von Managed Service for Apache Spark, die in Ihrem benutzerdefinierten Image verwendet werden soll. Geben Sie die Version im Format x.y.z-os oder x.y.z-rc-os an, z. B. „2.0.69-debian10“.

  • --customization-script: Ein lokaler Pfad zu Ihrem Skript, das vom Tool ausgeführt wird, um Ihre benutzerdefinierten Pakete zu installieren oder andere Anpassungen vorzunehmen. Dieses Skript wird nur auf der temporären VM, die zum Erstellen des benutzerdefinierten Images verwendet wird, als Linux-Startskript ausgeführt. Sie können ein anderes Initialisierungsscript für andere Initialisierungsaktionen angeben, die ausgeführt werden sollen, wenn Sie einen Cluster mit Ihrem benutzerdefinierten Image erstellen.

    Projektübergreifende Images:Wenn Ihr benutzerdefiniertes Image zum Erstellen von Clustern in verschiedenen Projekten verwendet wird, kann ein Fehler aufgrund des im Image gespeicherten Befehlscache für gcloud oder gsutil auftreten. Sie können dieses Problem vermeiden, indem Sie den folgenden Befehl in Ihr Anpassungsskript einfügen, um zwischengespeicherte Anmeldedaten zu löschen.

    rm -r /root/.gsutil /root/.config/gcloud
    
  • --zone: die Compute Engine-Zone, in der generate_custom_image.py eine temporäre VM erstellt, die zum Erstellen Ihres benutzerdefinierten Images verwendet wird.

  • --gcs-bucket: Ein URI im Format gs://BUCKET_NAME, der auf Ihren Cloud Storage-Bucket verweist. generate_custom_image.py schreibt Logdateien in diesen Bucket.

Optionale Flags

  • --family: die Image-Familie für das benutzerdefinierte Image. Image-Familien werden verwendet, um ähnliche Images zu gruppieren, und können beim Erstellen eines Clusters als Zeiger auf das neueste Image in der Familie verwendet werden. Beispiel: custom-2-2-debian12.
  • --no-smoke-test: Dies ist ein optionales Flag, das das Testen des neu erstellten benutzerdefinierten Images deaktiviert. Beim Smoke-Test wird ein Managed Service for Apache Spark-Testcluster mit dem neu erstellten Image erstellt, ein kleiner Job ausgeführt und der Cluster am Ende des Tests gelöscht. Der Smoke-Test wird standardmäßig ausgeführt, um zu prüfen, ob mit dem neu erstellten benutzerdefinierten Image ein funktionsfähiger Managed Service for Apache Spark-Cluster erstellt werden kann. Wenn Sie diesen Schritt mit dem Flag --no-smoke-test deaktivieren, wird der Build-Prozess für benutzerdefinierte Images beschleunigt. Die Verwendung des Flags wird jedoch nicht empfohlen.
  • --subnet: Das Subnetzwerk, das zum Erstellen der VM verwendet wird, mit der das benutzerdefinierte Managed Service for Apache Spark-Image erstellt wird. Wenn Ihr Projekt Teil einer gemeinsam genutzten VPC ist, müssen Sie die vollständige Subnetzwerk-URL im folgenden Format angeben: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET.
  • --optional-components: Dieses Flag ist nur verfügbar, wenn Sie Basisbildversionen 2.3 und höher verwenden. Eine Liste der optionalen Komponenten, die im Image installiert werden sollen, z. B. SOLR, RANGER, TRINO, DOCKER, FLINK, HIVE_WEBHCAT, ZEPPELIN, HUDI, ICEBERG und PIG (PIG ist als optionale Komponente in Image-Versionen 2.3 und höher verfügbar).

    Beispiel: Google Cloud CLI-Befehl zum Erstellen eines Clusters:

    gcloud dataproc clusters create CLUSTER_NAME
        --image=CUSTOM_IMAGE_URI  \
        --optional-components=COMPONENT_NAME \
        ... other flags
    

Eine Liste der verfügbaren optionalen Flags finden Sie auf GitHub unter Optional Arguments.

Wenn generate_custom_image.py erfolgreich ist, wird die imageURI des benutzerdefinierten Images in der Terminalfensterausgabe angezeigt (die vollständige imageUri wird unten fett dargestellt):

...
managedCluster:
    clusterName: verify-image-20180614213641-8308a4cd
    config:
      gceClusterConfig:
        zoneUri: ZONE
      masterConfig:
        imageUri: **https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME**
...

INFO:__main__:Successfully built Dataproc custom image: CUSTOM_IMAGE_NAME
INFO:__main__:

#####################################################################
  WARNING: DATAPROC CUSTOM IMAGE 'CUSTOM_IMAGE_NAME'
           WILL EXPIRE ON 2018-07-14 21:35:44.133000.
#####################################################################

Benutzerdefinierte Labels für Bildversionen (erweiterte Nutzung)

Wenn Sie das Standardtool für benutzerdefinierte Images von Managed Service for Apache Spark verwenden, wird dem erstellten benutzerdefinierten Image das Label goog-dataproc-version zugewiesen. Das Label gibt die Funktionen und Protokolle an, die von Managed Service for Apache Spark zum Verwalten der Software auf dem Image verwendet werden.

Erweiterte Nutzung: Wenn Sie ein eigenes Verfahren zum Erstellen eines benutzerdefinierten Managed Service for Apache Spark-Images verwenden, müssen Sie das Label goog-dataproc-version manuell zu Ihrem benutzerdefinierten Image hinzufügen. Gehen Sie dazu so vor:

  1. Extrahieren Sie das Label goog-dataproc-version aus dem Managed Service for Apache Spark-Basis-Image, das zum Erstellen des benutzerdefinierten Images verwendet wurde.

    gcloud compute images describe ${BASE_DATAPROC_IMAGE} \
        --project cloud-dataproc \
        --format="value(labels.goog-dataproc-version)"
    

  2. Legen Sie das Label für das benutzerdefinierte Image fest.

    gcloud compute images add-labels IMAGE_NAME --labels=[KEY=VALUE,...]
    

Benutzerdefiniertes Image verwenden

Sie geben das benutzerdefinierte Image an, wenn Sie einen Managed Service for Apache Spark-Cluster erstellen. Ein benutzerdefiniertes Image wird in Cloud Compute Images gespeichert und ist ab dem Erstellungsdatum 365 Tage lang gültig, um einen Managed Service for Apache Spark-Cluster zu erstellen. Informationen zum Verwenden eines benutzerdefinierten Images nach Ablauf der 365 Tage finden Sie unter Cluster mit einem abgelaufenen benutzerdefinierten Image erstellen.

URI eines benutzerdefinierten Images

Sie übergeben den imageUri des benutzerdefinierten Images an den Vorgang zum Erstellen des Clusters. Es gibt drei Möglichkeiten, diesen URI anzugeben:

  1. Vollständiger URI:
    https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/`gs://`BUCKET_NAME`
  2. Teil-URI: projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME
  3. Kurzform: CUSTOM_IMAGE_NAME

Benutzerdefinierte Images können auch über ihren Familien-URI angegeben werden, der immer das neueste Bild innerhalb der Image-Familie auswählt.

  1. Vollständiger URI:
    https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/family/CUSTOM_IMAGE_FAMILY_NAME/var>
  2. Teil-URI: projects/PROJECT_ID/global/images/family/CUSTOM_IMAGE_FAMILY_NAME

Benutzerdefinierten Image-URI finden

Google Cloud CLI

Führen Sie den folgenden Befehl aus, um die Namen Ihrer benutzerdefinierten Images aufzulisten.

gcloud compute images list

Übergeben Sie den Namen Ihres benutzerdefinierten Images an den folgenden Befehl, um den URI (selfLink) Ihres benutzerdefinierten Images aufzulisten.

gcloud compute images describe custom-image-name

Ausgabe-Snippet:

...
name: CUSTOM_IMAGE_NAME
selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME
...

Cloud de Confiance Console

  1. Öffnen Sie in der Cloud de Confiance Console die Seite Compute Engine → Images und klicken Sie dann auf den Namen des Images. Sie können eine Abfrage in das Feld filter images einfügen, um die Anzahl der angezeigten Bilder zu begrenzen.
  2. Die Seite Bilddetails wird geöffnet. Klicken Sie auf Äquivalenter REST.
  3. In der REST-Antwort werden zusätzliche Informationen über das Image angezeigt, beispielsweise der Image-URI selfLink.
    {
      ...
      "name": "my-custom-image",
      "selfLink": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME",
      "sourceDisk": ...,
      ...
    }
    

Cluster mit einem benutzerdefinierten Image erstellen

Erstellen Sie einen Cluster mit der gcloud CLI, der Dataproc API oder derCloud de Confiance -Konsole.

Cloud de Confiance Console

  1. Öffnen Sie die Seite Cluster erstellen.
  2. Klicken Sie im Abschnitt Cluster definieren auf Image-Typ und -Version, wählen Sie Benutzerdefiniertes Image aus und bestätigen oder ändern Sie das Projekt. Wählen Sie dann ein verfügbares benutzerdefiniertes Image aus.

gcloud-CLI

Erstellen Sie einen Managed Service for Apache Spark-Cluster mit einem benutzerdefinierten Image mit dem Befehl dataproc clusters create und dem Flag --image.

Beispiel:
gcloud dataproc clusters create CLUSTER-NAME \
    --image=CUSTOM_IMAGE_URI \
    --region=REGION \
    ... other flags

REST API

Erstellen Sie einen Cluster mit einem benutzerdefinierten Image, indem Sie den benutzerdefinierten Image-URI im Feld InstanceGroupConfig.imageUri im Objekt masterConfig, workerConfig und gegebenenfalls secondaryWorkerConfig angeben, das in einer cluster.create-API-Anfrage enthalten ist.

Beispiel:REST-Anfrage zum Erstellen eines standardmäßigen Managed Service for Apache Spark-Clusters (ein Master, zwei Worker-Knoten) mit einem benutzerdefinierten Image.

POST /v1/projects/PROJECT_ID/regions/REGION/clusters/
{
  "clusterName": "CLUSTER_NAME",
  "config": {
    "masterConfig": {
      "imageUri": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME"
    },
    "workerConfig": {
      "imageUri": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME"
    }
  }
}
  

Managed Service for Apache Spark-Clustereigenschaften mit einem benutzerdefinierten Image überschreiben

Sie können benutzerdefinierte Images verwenden, um Clusterattribute zu überschreiben, die beim Erstellen des Clusters festgelegt werden. Wenn Sie einen Cluster mit einem benutzerdefinierten Image erstellen und beim Erstellen des Clusters Eigenschaften mit Werten festgelegt werden, die sich von den Werten in Ihrem benutzerdefinierten Image unterscheiden, haben die von Ihrem benutzerdefinierten Image festgelegten Eigenschaftswerte Vorrang.

So legen Sie Clusterattribute mit Ihrem benutzerdefinierten Image fest:

  1. Erstellen Sie in Ihrem benutzerdefinierten Anpassungsskript für das benutzerdefinierte Image eine dataproc.custom.properties-Datei in /etc/google-dataproc und legen Sie dann Clusterattributwerte in der Datei fest.

    • Beispieldatei dataproc.custom.properties:
    dataproc.conscrypt.provider.enable=VALUE
    dataproc.logging.stackdriver.enable=VALUE
    
    • Beispiel für einen Ausschnitt zum Erstellen einer Anpassungsscript-Datei zum Überschreiben von zwei Clustereigenschaften:
    cat <<EOF >/etc/google-managed-spark/dataproc.custom.properties
    dataproc.conscrypt.provider.enable=true
    dataproc.logging.stackdriver.enable=false
    EOF
    

Cluster mit einem abgelaufenen benutzerdefinierten Image erstellen

Benutzerdefinierte Images laufen standardmäßig 365 Tage nach dem Erstellungsdatum des Images ab. So erstellen Sie einen Cluster mit einem abgelaufenen benutzerdefinierten Image:

  1. Sie versuchen, einen Managed Service for Apache Spark-Cluster mit einem abgelaufenen benutzerdefinierten Image oder einem benutzerdefinierten Image zu erstellen, das innerhalb von 10 Tagen abläuft.

    gcloud dataproc clusters create CLUSTER-NAME \
        --image=CUSTOM-IMAGE-NAME \
        --region=REGION \
        ... other flags
    
  2. Die gcloud CLI gibt eine Fehlermeldung aus, die den Namen des dataproc:dataproc.custom.image.expiration.token-Attributs des Clusters und den Tokenwert enthält.

dataproc:dataproc.custom.image.expiration.token=TOKEN_VALUE

Kopieren Sie den String TOKEN_VALUE in die Zwischenablage.

  1. Erstellen Sie den Managed Service for Apache Spark-Cluster mit der gcloud CLI noch einmal und fügen Sie die kopierte TOKEN_VALUE als Clustereigenschaft hinzu.

    gcloud dataproc clusters create CLUSTER-NAME \
        --image=CUSTOM-IMAGE-NAME \
        --properties=dataproc:dataproc.custom.image.expiration.token=TOKEN_VALUE \
        --region=REGION \
        ... other flags
    

Der Cluster mit dem benutzerdefinierten Image sollte nun erfolgreich erstellt werden.