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 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 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 im 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

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

  2. So rufen Sie den Inhalt des Staging-Buckets mit der gcloud CLI auf:

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