Best Practices für Managed Service for Apache Spark für die Produktion

In diesem Dokument werden Best Practices für Managed Service for Apache Spark behandelt, 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 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 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 Versionsverwaltung für mehr Informationen.

Managed Service for Apache Spark-Image-Versionen in der Vorschau

Neue Nebenversionen von Managed Service for Apache Spark-Images sind vor der Veröffentlichung im Standard-Track für Nebenversionen von Images in einer preview-Version verfügbar. Verwenden Sie ein Vorschaubild, um Ihre Jobs mit einer neuen Nebenversion von Images zu testen und zu validieren, bevor Sie die Standard-Nebenversion von Images in der Produktion verwenden. Weitere Informationen finden Sie unter Versionsverwaltung für Managed Service for Apache Spark.

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 Nebenversionen von 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 von Images im Track der Nebenversionen von Images.

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, die nur von Abhängigkeiten auf Clusterebene abhängen, mit einer festen Nebenversion von 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 Senden einer Uber-JAR-Datei an Spark oder MapReduce.

  • Beispiel: Wenn eine Job-JAR-Datei von args4j und spark-sql abhängt, wobei args4j spezifisch für den Job und spark-sql eine Abhängigkeit auf Clusterebene ist, bündeln Sie args4j in 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 für Managed Service for Apache Spark im Blick behalten

Managed Service for Apache Spark veröffentlicht regelmäßig neue Sub-Minor-Versionen von Images. In den Versionshinweisen für Managed Service for Apache Spark finden Sie die neuesten Releases von Managed Service for Apache Spark-Image-Versionen sowie andere Ankündigungen, Änderungen und Korrekturen.

Staging-Bucket zur Untersuchung von Fehlern ansehen

  1. 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 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
     

  2. Verwenden Sie die gcloud CLI, um den Inhalt des Staging-Buckets anzusehen:

    gcloud storage cat gs://STAGING_BUCKET
    
    Beispielausgabe:
    + 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-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