Best Practices für Dataproc in der Produktion

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

Cluster-Image-Versionen angeben

Dataproc verwendet Image-Versionen um 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.

Verknüpfen Sie für Produktionsumgebungen Ihren Cluster mit einer bestimmten major.minor Dataproc-Image-Version, wie im folgenden gcloud CLI-Befehl gezeigt.

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

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

Dataproc-Image-Versionen in der Vorschau

Neue Nebenversionen von Dataproc Images sind in einer preview Version verfügbar, bevor sie zur Veröffentlichung im Standard-Track für Nebenversionen des Images freigegeben werden. Mit einem Image in der Vorschau können Sie Ihre Jobs mit einer neuen Nebenversion des Images testen und validieren, bevor Sie die Standard-Nebenversion des Images 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üssen, z. B. native Python-Bibliotheken oder Software zur Sicherheitshärtung oder zum Virenschutz, erstellen Sie ein benutzerdefiniertes Image aus dem neuesten Image im Track der Ziel-Nebenversion des Images. 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 im Track der Nebenversion des Images.

Jobs an den Dataproc-Dienst senden

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

Vorteile des Sendens von Jobs an den Dataproc-Dienst:

  • Keine komplizierten Netzwerkeinstellungen erforderlich – die API ist weitgehend erreichbar
  • Einfache Verwaltung von IAM-Berechtigungen und -Rollen
  • Jobstatus einfach verfolgen – 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 Nebenversion des Images (z. B. --image-version=2.0). Bündeln Sie Abhängigkeiten mit Jobs, wenn die Jobs gesendet werden. Eine gängige Methode hierfür ist das Senden einer Uber-JAR-Datei an Spark oder MapReduce.

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

Standorte von Initialisierungsaktionen steuern

Initialisierungsaktionen ermöglichen Ihnen, beim Erstellen eines Dataproc-Clusters automatisch Skripts auszuführen oder Komponenten zu installieren (im dataproc-initialization-actions GitHub-Repository finden Sie gängige Dataproc-Initialisierungsaktionen). Wenn Sie Cluster-Initialisierungsaktionen in einer Produktions umgebung verwenden, kopieren Sie Initialisierungsskripts in Cloud Storage anstatt sie aus einem öffentlichen Repository zu beziehen. So vermeiden Sie, dass Initialisierungsskripts ausgeführt werden, die von anderen geändert werden können.

Dataproc-Versionshinweise im Blick behalten

Dataproc veröffentlicht regelmäßig neue Sub-Minor-Versionen des Images. In den Dataproc-Versionshinweisen finden Sie die neuesten Dataproc-Image-Versionen und andere Ankündigungen, Änderungen und Korrekturen. Sie können sie auch abonnieren.

Staging-Bucket zur Untersuchung von Fehlern ansehen

  1. Sehen Sie sich den Staging-Bucket Ihres Clusters an, um Cluster- und Job-Fehlermeldungen zu untersuchen. Normalerweise wird der Cloud Storage-Speicherort des Staging-Buckets in Fehlermeldungen angezeigt, wie im fett gedruckten 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. Verwenden Sie die gcloud CLI, um den Inhalt des Staging-Buckets anzusehen:

    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 anfordern

Google Cloud unterstützt Ihre OSS-Produktionsarbeitslasten und hilft Ihnen, Ihre geschäftlichen SLAs durch verschiedene Supportstufen zu erfüllen. Außerdem können Sie sich von den Google Cloud Consulting Services zu Best Practices für die Produktionsbereitstellungen Ihres Teams beraten lassen.

Weitere Informationen