Best Practices für Dataproc in der Produktion

In diesem Dokument werden Best Practices für Dataproc beschrieben, mit denen Sie zuverlässige, effiziente und aussagekräftige Datenverarbeitungsjobs auf Dataproc-Clustern in Produktionsumgebungen ausführen können.

Cluster-Image-Versionen angeben

Dataproc verwendet Image-Versionen, um das Betriebssystem, Big-Data-Komponenten und Google Cloud-Connectors in einem Paket zu bündeln, das auf einem Cluster bereitgestellt wird. Wenn Sie beim Erstellen eines Clusters keine Image-Version angeben, verwendet Dataproc standardmäßig die neueste stabile Image-Version.

Weisen Sie Produktionsumgebungen eine bestimmte major.minor-Dataproc-Imageversion zu, wie im folgenden gcloud CLI-Befehl gezeigt.

gcloud dataproc clusters create CLUSTER_NAME \
    --region=region \
    --image-version=2.0

In Dataproc wird die Version major.minor in die neueste Sub-Minor-Version aufgelöst (2.0 wird in 2.0.x aufgelöst). Hinweis: Wenn Sie für Ihren Cluster eine bestimmte Sub-Minor-Version benötigen, können Sie sie angeben, z. B. --image-version=2.0.x. Weitere Informationen finden Sie unter Funktionsweise der Versionierung.

Vorabversionen von Dataproc-Images

Neue Nebenversionen von Dataproc-Images sind vor der Veröffentlichung im Standard-Track für Nebenversionen als preview-Version verfügbar. Verwenden Sie ein Vorschau-Image, um Ihre Jobs mit einer neuen Nebenversion des Images zu testen und zu validieren, bevor Sie die Standard-Nebenversions-Imageversion in der Produktion verwenden. Weitere Informationen finden Sie unter Dataproc-Versionsverwaltung.

Bei Bedarf benutzerdefinierte Images verwenden

Wenn Sie dem Cluster Abhängigkeiten hinzufügen möchten, z. B. native Python-Bibliotheken oder Sicherheitshärtungs- oder Virenschutzsoftware, erstellen Sie ein benutzerdefiniertes Image aus dem aktuellen Image in Ihrem Ziel-Track für Minor-Imageversionen. So können Sie die Abhängigkeitsanforderungen erfüllen, wenn Sie Cluster mit Ihrem benutzerdefinierten Image erstellen. Wenn Sie Ihr benutzerdefiniertes Image neu erstellen, um die Abhängigkeitsanforderungen zu aktualisieren, verwenden Sie die neueste verfügbare Sub-Minor-Version des Images innerhalb des Minor-Image-Tracks.

Jobs an den Dataproc-Dienst senden

Über die gcloud CLI oder die Google Cloud Console Jobs mit einem jobs.submit-Aufruf an den Dataproc-Dienst senden. Legen Sie Job- und Clusterberechtigungen fest, indem Sie Dataproc-Rollen gewähren. Verwenden Sie benutzerdefinierte Rollen, um den Clusterzugriff von den Berechtigungen zum Einreichen von Jobs zu trennen.

Vorteile des Einreichens von Jobs an den Dataproc-Dienst:

  • Keine komplizierten Netzwerkeinstellungen erforderlich – die API ist weithin erreichbar
  • Einfache Verwaltung von IAM-Berechtigungen und -Rollen
  • Einfacher Jobstatus – keine Dataproc-Jobmetadaten, die die Ergebnisse verkomplizieren

Führen Sie in der Produktion Jobs aus, die nur von Abhängigkeiten auf Clusterebene abhängen, mit einer festen Image-Nebenversion aus (z. B. --image-version=2.0). Binden Sie Abhängigkeiten beim Einreichen der Jobs in die Jobs ein. Eine gängige Methode ist das Einreichen eines uber jar in Spark oder MapReduce.

  • Beispiel: Wenn ein Job-JAR von args4j und spark-sql abhängt, wobei args4j für den Job spezifisch ist und spark-sql eine Abhängigkeit auf Clusterebene, bündeln Sie args4j im Uber-JAR des Jobs.

Standorte für Initialisierungsaktionen steuern

Mit Initialisierungsaktionen können Sie beim Erstellen eines Dataproc-Clusters automatisch Scripts ausführen oder Komponenten installieren. Im GitHub-Repository dataproc-initialization-actions finden Sie gängige Dataproc-Initialisierungsaktionen. Wenn Sie Clusterinitialisierungsaktionen in einer Produktionsumgebung verwenden, kopieren Sie die Initialisierungsscripts in Cloud Storage, anstatt sie aus einem öffentlichen Repository abzurufen. So wird verhindert, dass Initialisierungsscripts ausgeführt werden, die von anderen geändert werden können.

Dataproc-Versionshinweise

Dataproc veröffentlicht regelmäßig neue Sub-Minor-Image-Versionen. Lesen Sie die Dataproc-Versionshinweisen oder abonnieren Sie sie, um über die neuesten Dataproc-Image-Versionen und andere Ankündigungen, Änderungen und Fehlerkorrekturen informiert zu bleiben.

Staging-Bucket aufrufen, um Fehler zu untersuchen

  1. Sehen Sie sich den Staging-Bucket Ihres Clusters an, um Cluster- und Jobfehlermeldungen zu untersuchen. Der Cloud Storage-Speicherort des Staging-Buckets wird in der Regel in Fehlermeldungen angezeigt, wie im fett dargestellten Text in der folgenden Beispielfehlermeldung:

    ERROR:
    (gcloud.dataproc.clusters.create) Operation ... failed:
    ...
    - Initialization action failed. Failed action ... see output in: 
    gs://dataproc-<BUCKETID>-us-central1/google-cloud-dataproc-metainfo/CLUSTERID/<CLUSTER_ID>\dataproc-initialization-script-0_output
     

  2. So rufen Sie den Inhalt des Staging-Buckets mit der gcloud CLI auf:

    gcloud storage cat gs://STAGING_BUCKET
    
    Beispielausgabe:
    + readonly RANGER_VERSION=1.2.0
    ... Ranger admin password not set. Please use metadata flag - default-password
    

Support kontaktieren

Google Cloud unterstützt Ihre OSS-Produktionslasten und hilft Ihnen, Ihre geschäftlichen SLAs durch Supportebenen einzuhalten. Außerdem können die Beratungsleistungen von Google Cloud Ihnen Best Practices für die Produktionsbereitstellungen Ihres Teams liefern.

Weitere Informationen