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
args4jundspark-sqlabhängt, wobeiargs4jspezifisch für den Job undspark-sqleine Abhängigkeit auf Clusterebene ist, bündeln Sieargs4jin 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
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
Verwenden Sie die gcloud CLI, um den Inhalt des Staging-Buckets anzusehen:
Beispielausgabe:gcloud storage cat gs://STAGING_BUCKET
+ 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
Lesen Sie den Google Cloud Blog Dataproc best practices guide.
Sehen Sie sich das Video Democratizing Dataproc auf YouTube an.