In diesem Dokument werden Best Practices für Managed Service for Apache Spark behandelt, mit denen Sie zuverlässige, effiziente und aufschlussreiche Datenverarbeitungsjobs in Managed Service for Apache Spark-Clustern in Produktionsumgebungen ausführen können.
Cluster-Image-Versionen angeben
Managed Service for Apache Spark 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 Managed Service for Apache Spark standardmäßig die neueste stabile Image-Version.
Verknüpfen Sie für Produktionsumgebungen Ihren Cluster mit einer bestimmten major.minor-Image-Version von Managed Service for Apache Spark, 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
Funktionsweise der Versionierung für
mehr Informationen.
Managed Service for Apache Spark-Image-Versionen in der Vorschau
Neue Nebenversionen von Managed Service for Apache Spark-Images sind in einer preview-Version verfügbar, bevor sie im Standard-Nebenversions-Image-Track veröffentlicht werden. Verwenden Sie ein Vorschau-Image, um Ihre Jobs mit einer neuen Nebenversions-Image-Version zu testen und zu validieren, bevor Sie die Standard-Nebenversions-Image-Version in der Produktion verwenden.
Weitere Informationen finden Sie unter Versionierung von Managed Service for Apache Spark.
Benutzerdefinierte Images verwenden, wenn erforderlich
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-Nebenversions-Image-Track. 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-Image-Version im Nebenversions-Image-Track.
Jobs an Managed Service for Apache Spark senden
Senden Sie Jobs mit einem jobs.submit -Aufruf über die gcloud CLI oder die Google Cloud Console an Managed Service for Apache Spark. Legen Sie Job- und Clusterberechtigungen fest, indem Sie Managed Service for Apache Spark-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 Managed Service for Apache Spark:
- Keine komplizierten Netzwerkeinstellungen erforderlich – die API ist weitgehend erreichbar
- Einfache Verwaltung von IAM-Berechtigungen und -Rollen
- Jobstatus einfach verfolgen – keine Managed Service for Apache Spark-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 Nebenversions-Image-Version (z. B. --image-version=2.0). Bündeln Sie Abhängigkeiten mit Jobs, wenn die Jobs gesendet werden. Eine Uber-JAR-Datei an
Spark oder MapReduce zu senden, ist eine gängige Methode hierfür.
- 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, Skripts automatisch auszuführen oder Komponenten zu installieren, wenn Sie einen Managed Service for Apache Spark-Cluster erstellen. Im dataproc-initialization-actions GitHub-Repository finden Sie gängige Initialisierungsaktionen für Managed Service for Apache Spark. Wenn Sie Cluster-Initialisierungsaktionen in einer Produktionsumgebung 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.
Versionshinweise zu Managed Service for Apache Spark im Blick behalten
Managed Service for Apache Spark veröffentlicht regelmäßig neue Sub-Minor-Image-Versionen. In den Versionshinweisen zu Managed Service for Apache Spark finden Sie die neuesten Managed Service for Apache Spark-Image-Versionen und andere Ankündigungen, Änderungen und Korrekturen.
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 SLAs zu erfüllen, indem verschiedene Supportstufen angeboten werden. 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 Blogpost Best Practices für Managed Service for Apache Spark.
Sehen Sie sich das Video Democratizing Managed Service for Apache Spark auf YouTube an.