In diesem Dokument werden Dataproc-Best Practices beschrieben, mit denen Sie zuverlässige, effiziente und aussagekräftige Datenverarbeitungsjobs in Produktionsumgebungen auf Dataproc-Clustern 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.
In Produktionsumgebungen sollten Sie Ihren Cluster einer bestimmten major.minor
-Dataproc-Image-Version zuordnen, 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 eine bestimmte Sub-Minor-Version benötigen, können Sie sie angeben, z. B. --image-version=2.0.x
. Weitere Informationen finden Sie unter Versionsverwaltung.
Dataproc-Vorschaubildversionen
Neue Nebenversionen von Dataproc-Images sind in einer preview
-Version verfügbar, bevor sie im Standard-Track für Nebenversionen von Images veröffentlicht werden. Verwenden Sie ein Vorab-Image, um Ihre Jobs mit einer neuen Nebenversion des Images zu testen und zu validieren, bevor Sie die Standard-Nebenversion des Images in der Produktion verwenden.
Weitere Informationen finden Sie unter Dataproc-Versionsverwaltung.
Bei Bedarf benutzerdefinierte Bilder 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 in Ihrem Ziel-Track für die untergeordnete Image-Version. So können Sie Abhängigkeitsanforderungen erfüllen, wenn Sie Cluster mit Ihrem benutzerdefinierten Image erstellen. Wenn Sie Ihr benutzerdefiniertes Image neu erstellen, um Abhängigkeitsanforderungen zu aktualisieren, verwenden Sie die neueste verfügbare Sub-Minor-Version des Images im Minor-Image-Track.
Jobs an den Dataproc-Dienst senden
Senden Sie Jobs mit einem jobs.submit-Aufruf an den Dataproc-Dienst. Verwenden Sie dazu die gcloud CLI oder die Google Cloud -Konsole. Legen Sie Job- und Clusterberechtigungen fest, indem Sie Dataproc-Rollen zuweisen. Mit benutzerdefinierten Rollen können Sie den Clusterzugriff von den Berechtigungen zum Einreichen von Jobs 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 nachverfolgen – keine Dataproc-Jobmetadaten, die die Ergebnisse verkomplizieren.
Führen Sie in der Produktion Jobs, die nur von Abhängigkeiten auf Clusterebene abhängen, mit einer festen Nebenversionsnummer des Images aus, 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 Einreichen eines Uber-JAR für Spark oder MapReduce.
- Beispiel: Wenn ein Job-JAR von
args4j
undspark-sql
abhängt, wobeiargs4j
spezifisch für den Job undspark-sql
eine Abhängigkeit auf Clusterebene ist, bündeln Sieargs4j
im Uber-JAR des Jobs.
Speicherorte von Initialisierungsaktionen verwalten
Mit Initialisierungsaktionen können Sie beim Erstellen eines Dataproc-Clusters automatisch Skripts ausführen oder Komponenten installieren. Im GitHub-Repository „dataproc-initialization-actions“ finden Sie gängige Dataproc-Initialisierungsaktionen. Wenn Sie Cluster-Initialisierungsaktionen in einer Produktionsumgebung verwenden, kopieren Sie Initialisierungsskripts in Cloud Storage, anstatt sie aus einem öffentlichen Repository zu beziehen. So wird vermieden, 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-Image-Versionen. Dataproc-Versionshinweise ansehen oder abonnieren, um über die neuesten Dataproc-Image-Versionen und andere Ankündigungen, Änderungen und Fehlerkorrekturen informiert zu werden.
Staging-Bucket aufrufen, um Fehler zu untersuchen
Sehen Sie sich den Staging-Bucket Ihres Clusters an, um Fehlermeldungen zu Clustern und Jobs zu untersuchen. Normalerweise wird der Cloud Storage-Speicherort des Staging-Buckets in Fehlermeldungen angezeigt, wie im fett formatierten Text in der folgenden Beispiel-Fehlermeldung zu sehen ist:
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
So rufen Sie den Inhalt des Staging-Buckets mit der gcloud CLI auf:
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 Supportstufen zu erfüllen. Google Cloud Consulting Services kann Ihnen auch Best Practices für die Produktionsbereitstellungen Ihres Teams zur Verfügung stellen.
Weitere Informationen
Lesen Sie den Google Cloud Blogbeitrag Dataproc-Leitfaden mit Best Practices.
Democratizing Dataproc auf YouTube ansehen