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 Betriebssysteme, Big-Data-Komponenten, und Google Cloud-Connectors zu einem Paket, das in 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
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 es angeben, z. B. --image-version=2.0.x
. Weitere Informationen finden Sie unter Funktionsweise der Versionierung.
Dataproc-Vorschau-Image-Versionen
Neue Nebenversionen von Dataproc
Bilder sind in einer preview
-Version vor der Veröffentlichung verfügbar
in der Standard-Neben-Image-Version. Vorschaubild verwenden
Zum Testen und Validieren Ihrer Jobs mit einer neuen Neben-Image-Version
bevor die Neben-Image-Standardversion
in der Produktion verwendet wird.
Siehe Dataproc-Versionsverwaltung
.
Bei Bedarf benutzerdefinierte Images verwenden
Wenn Sie dem Cluster Abhängigkeiten hinzufügen müssen, z. B. native Python-Bibliotheken, Sicherheits- oder Virenschutzsoftware, Erstellen eines benutzerdefinierten Images mit dem neuesten Image im Ziel-Neben-Image-Versions-Track. So können Sie Abhängigkeitsanforderungen erfüllen, wenn Sie Cluster mit Ihrem benutzerdefinierten Image erstellen. Wenn Sie Ihr benutzerdefiniertes Image Aktualisierung von Abhängigkeitsanforderungen verwenden Sie die neueste verfügbare Sub-Minor-Image-Version im Neben-Image-Track.
Jobs an 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
In der Produktion Jobs ausführen, die nur von Clusterebene abhängig sind
Abhängigkeiten in einer festen Neben-Image-Version (z. B. --image-version=2.0
). Set
Abhängigkeiten mit Jobs, wenn die Jobs gesendet werden. Wird gesendet
Uber-JAR-Datei
Dafür gibt es häufig Spark oder MapReduce.
- Beispiel: Wenn ein Job-JAR von
args4j
undspark-sql
abhängt, wobeiargs4j
für den Job spezifisch undspark-sql
eine Abhängigkeit auf Clusterebene ist, bündeln Sieargs4j
im Uber-JAR des Jobs.
Speicherorte von 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. Bei Verwendung von Initialisierungsaktionen des Clusters in einer Produktionsumgebung Umgebung, Initialisierungsskripts nach Cloud Storage kopieren anstatt aus einem öffentlichen Repository zu beziehen. So wird verhindert, dass Initialisierungsscripts ausgeführt werden, die von anderen geändert werden können.
Dataproc-Versionshinweise überwachen
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
Sehen Sie sich den Staging-Bucket um Cluster- und Job-Fehlermeldungen zu untersuchen. In der Regel wird der Cloud Storage-Speicherort des Staging-Buckets in wie im fett formatierten Text im folgenden Beispielfehler Nachricht:
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 kontaktieren
Google Cloud unterstützt Ihre OSS-Produktionslasten und hilft Ihnen, Ihre geschäftlichen SLAs durch Supportebenen einzuhalten. Außerdem hat Google Cloud Beratungsdienste können Ratschläge zu Best Practices geben. für die Produktionsbereitstellungen Ihres Teams.
Weitere Informationen
Lesen Sie den Leitfaden zu Best Practices für Dataproc im Google Cloud-Blog.
Democratizing Dataproc auf YouTube ansehen