Best Practices für Dataproc für die Produktion

In diesem Dokument werden Best Practices für Dataproc erläutert, mit denen Sie zuverlässige, effiziente und aufschlussreiche Datenverarbeitungsjobs in Dataproc-Clustern in Produktionsumgebungen ausführen können.

Cluster-Image-Versionen angeben

Dataproc verwendet Image-Versionen, um Betriebssystem, Big-Data-Komponenten und Google Cloud-Connectors in einem Paket zu bündeln, 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.

In Produktionsumgebungen verknüpfen Sie den Cluster mit einer bestimmten major.minor Dataproc-Image-Version, 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 eine bestimmte Sub-Minor-Version für Ihren Cluster benötigen, können Sie diese angeben, z. B. --image-version=2.0.x. Weitere Informationen finden Sie unter Funktionsweise der Versionsverwaltung.

Versionen des Dataproc-Vorschau-Images

Neue Nebenversionen von Dataproc-Images sind in einer preview-Version vor der Veröffentlichung im standardmäßigen Nebenversions-Track verfügbar. Verwenden Sie ein Vorschau-Image, um Ihre Jobs vor der Übernahme der Standard-Neben-Image-Version in der Produktion zu testen und anhand einer neuen Neben-Image-Version zu validieren. Weitere Informationen finden Sie unter Dataproc-Versionsverwaltung.

Bei Bedarf benutzerdefinierte Bilder verwenden

Wenn Sie dem Cluster Abhängigkeiten hinzufügen müssen, z. B. native Python-Bibliotheken, Sicherheitshärtungs- oder Virenschutzsoftware, erstellen Sie ein benutzerdefiniertes Image aus dem neuesten Image in Ihrem Ziel-Nebenversions-Track. Mit dieser Vorgehensweise 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 Neben-Image-Track.

Jobs an den Dataproc-Dienst senden

Senden Sie Jobs mit einem jobs.submit über die gcloud CLI oder die Google Cloud Console an den Dataproc-Dienst. Legen Sie Job- und Clusterberechtigungen fest, indem Sie Dataproc-Rollen zuweisen. Verwenden Sie benutzerdefinierte Rollen, um den Clusterzugriff von den Berechtigungen zum Senden von Jobs zu trennen.

Vorteile des Sendens von Jobs an den Dataproc-Dienst:

  • Keine komplizierten Netzwerkeinstellungen erforderlich – die API ist allgemein erreichbar
  • Einfach zu verwaltende IAM-Berechtigungen und -Rollen
  • Sie können den Jobstatus ganz einfach verfolgen – keine Dataproc-Jobmetadaten, die die Ergebnisse verkomplizieren könnten.

Führen Sie in der Produktion in einer festen Image-Nebenversion (z. B. --image-version=2.0) Jobs aus, die nur von Abhängigkeiten auf Clusterebene abhängig sind. Bündeln Sie Abhängigkeiten mit Jobs, wenn die Jobs gesendet werden. Dazu wird häufig eine Uber-JAR-Datei an Spark oder MapReduce gesendet.

  • Beispiel: Wenn eine Job-JAR-Datei von args4j und spark-sql abhängt, wobei args4j für den Job spezifisch und spark-sql eine Abhängigkeit auf Clusterebene ist, bündeln Sie args4j in der Uber-JAR-Datei des Jobs.

Speicherorte der Initialisierungsaktionen steuern

Mit Initialisierungsaktionen können Sie beim Erstellen eines Dataproc-Clusters Skripts automatisch ausführen oder Komponenten installieren. Gängige Dataproc-Initialisierungsaktionen finden Sie unter dem GitHub-Repository dataproc-initial-actions. Wenn Sie Cluster-Initialisierungsaktionen in einer Produktionsumgebung verwenden, kopieren Sie die Initialisierungsskripts nach Cloud Storage, anstatt sie aus einem öffentlichen Repository zu beziehen. Dadurch wird die Ausführung von Initialisierungsskripts vermieden, die von anderen geändert werden müssen.

Dataproc-Versionshinweise überwachen

Dataproc veröffentlicht regelmäßig neue Sub-Minor-Image-Versionen. Sehen Sie sich die Dataproc-Versionshinweise an oder abonnieren Sie sie, um über die neuesten Releases von Dataproc-Image-Versionen sowie andere Ankündigungen, Änderungen und Fehlerbehebungen informiert zu werden.

Staging-Bucket aufrufen, um Fehler zu untersuchen

  1. Sehen Sie sich den Staging-Bucket Ihres Clusters an, um Fehlermeldungen zu Clustern und Jobs zu untersuchen. In der Regel wird der Cloud Storage-Speicherort des Staging-Buckets in Fehlermeldungen angezeigt, wie in der folgenden Beispielfehlermeldung in Fettdruck dargestellt:

    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 gsutil, um den Inhalt des Staging-Buckets anzusehen:

    gsutil 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, die SLAs Ihres Unternehmens über Supportstufen einzuhalten. Außerdem können Sie die Beratungsdienste von Google Cloud zu Best Practices für die Produktionsbereitstellungen Ihres Teams nutzen.

Weitere Informationen