In diesem Dokument werden Best Practices für Managed Service for Apache Spark beschrieben, mit denen Sie zuverlässige, effiziente und aussagekräftige 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, wird im Managed Service for Apache Spark standardmäßig die aktuelle stabile Image-Version verwendet.
Ordnen Sie Ihren Cluster in Produktionsumgebungen einer bestimmten major.minor-Image-Version von Managed Service for Apache Spark 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 sie angeben, z. B. --image-version=2.0.x. Weitere Informationen finden Sie unter Versionsverwaltung.
Vorschaubildversionen für Managed Service for Apache Spark
Neue Nebenversionen von Managed Service for Apache Spark-Images sind in einer preview-Version vor der Veröffentlichung im Standard-Nebenversions-Image-Track verfügbar. Verwenden Sie ein Vorab-Image, um Ihre Jobs mit einer neuen Nebenversion des Images zu testen und zu validieren, bevor Sie die standardmäßige Nebenversion des Images in der Produktion verwenden.
Weitere Informationen finden Sie unter Versionsverwaltung für Managed Service for Apache Spark.
Bei Bedarf benutzerdefinierte Bilder verwenden
Wenn Sie dem Cluster Abhängigkeiten hinzufügen müssen, z. B. native Python-Bibliotheken oder Software zur Sicherheitsoptimierung oder zum Virenschutz, erstellen Sie ein benutzerdefiniertes Image aus dem neuesten Image in Ihrem Ziel-Minor-Image-Versions-Track. 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-Image-Version im Minor-Image-Track.
Jobs an Managed Service for Apache Spark senden
Senden Sie Jobs an Managed Service for Apache Spark mit einem jobs.submit-Aufruf über die gcloud CLI oder die Google Cloud Console. Legen Sie Job- und Clusterberechtigungen fest, indem Sie Managed Service for Apache Spark-Rollen zuweisen. 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 nachverfolgen – keine Metadaten für Managed Service for Apache Spark-Jobs, die die Ergebnisse verkomplizieren.
Führen Sie in der Produktion Jobs, die nur von Abhängigkeiten auf Clusterebene abhängen, mit einer festen untergeordneten Image-Version aus, z. B. --image-version=2.0. Bündeln Sie Abhängigkeiten mit Jobs, wenn die Jobs gesendet werden. Das Senden eines Uber-JAR an Spark oder MapReduce ist eine gängige Methode dafür.
- Beispiel: Wenn ein Job-JAR von
args4jundspark-sqlabhängt, wobeiargs4jspezifisch für den Job undspark-sqleine Abhängigkeit auf Clusterebene ist, bündeln Sieargs4jim Uber-JAR des Jobs.
Speicherorte für Initialisierungsaktionen verwalten
Mit Initialisierungsaktionen können Sie beim Erstellen eines Managed Service for Apache Spark-Clusters automatisch Skripts ausführen oder Komponenten installieren. Im GitHub-Repository dataproc-initialization-actions finden Sie häufig verwendete 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 die Ausführung von Initialisierungsskripts, die von anderen geändert werden.
Versionshinweise für Managed Service for Apache Spark im Blick behalten
Für Managed Service for Apache Spark werden regelmäßig neue untergeordnete Image-Versionen veröffentlicht. Versionshinweise zu Managed Service for Apache Spark ansehen oder abonnieren, um über die neuesten Releases von Managed Service for Apache Spark-Imageversionen und andere Ankündigungen, Änderungen und Fehlerkorrekturen informiert zu werden.
Staging-Bucket ansehen, 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. Außerdem Google Cloud Beratungsdienste können Best Practices für die Produktionsbereitstellungen Ihres Teams bereitstellen.
Weitere Informationen
Lesen Sie den Google Cloud Blogbeitrag Best Practices für Managed Service for Apache Spark.
Democratizing Managed Service for Apache Spark auf YouTube ansehen