Best Practices für Dataproc für die Produktion

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

Cluster-Image-Versionen angeben

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

Weisen Sie Produktionsumgebungen eine bestimmte major.minor-Dataproc-Imageversion 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 es angeben, z. B. --image-version=2.0.x. Weitere Informationen finden Sie unter Funktionsweise der Versionierung.

Dataproc-Vorschau-Image-Versionen

Neue Nebenversionen von Dataproc Bilder sind in einer preview-Version vor der Veröffentlichung verfügbar in der Standard-Neben-Image-Version. Vorschaubild verwenden Zum Testen und Validieren Ihrer Jobs mit einer neuen Neben-Image-Version bevor die Neben-Image-Standardversion in der Produktion verwendet wird. Siehe Dataproc-Versionsverwaltung .

Bei Bedarf benutzerdefinierte Images verwenden

Wenn Sie dem Cluster Abhängigkeiten hinzufügen müssen, z. B. native Python-Bibliotheken, Sicherheits- oder Virenschutzsoftware, Erstellen eines benutzerdefinierten Images mit dem neuesten Image im Ziel-Neben-Image-Versions-Track. So können Sie Abhängigkeitsanforderungen erfüllen, wenn Sie Cluster mit Ihrem benutzerdefinierten Image erstellen. Wenn Sie Ihr benutzerdefiniertes Image Aktualisierung von Abhängigkeitsanforderungen verwenden Sie die neueste verfügbare Sub-Minor-Image-Version im Neben-Image-Track.

Jobs an Dataproc-Dienst senden

Über die gcloud CLI oder die Google Cloud Console Jobs mit einem jobs.submit-Aufruf an den Dataproc-Dienst senden. Legen Sie Job- und Clusterberechtigungen fest, indem Sie Dataproc-Rollen gewähren. Verwenden Sie benutzerdefinierte Rollen, um den Clusterzugriff von den Berechtigungen zum Einreichen von Jobs zu trennen.

Vorteile des Einreichens von Jobs an den Dataproc-Dienst:

  • Keine komplizierten Netzwerkeinstellungen erforderlich – die API ist weithin erreichbar
  • Einfache Verwaltung von IAM-Berechtigungen und -Rollen
  • Einfacher Jobstatus – keine Dataproc-Jobmetadaten, die die Ergebnisse verkomplizieren

In der Produktion Jobs ausführen, die nur von Clusterebene abhängig sind Abhängigkeiten in einer festen Neben-Image-Version (z. B. --image-version=2.0). Set Abhängigkeiten mit Jobs, wenn die Jobs gesendet werden. Wird gesendet Uber-JAR-Datei Dafür gibt es häufig Spark oder MapReduce.

  • Beispiel: Wenn ein Job-JAR 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 im Uber-JAR des Jobs.

Speicherorte von Initialisierungsaktionen steuern

Mit Initialisierungsaktionen können Sie beim Erstellen eines Dataproc-Clusters automatisch Scripts ausführen oder Komponenten installieren. Im GitHub-Repository dataproc-initialization-actions finden Sie gängige Dataproc-Initialisierungsaktionen. Bei Verwendung von Initialisierungsaktionen des Clusters in einer Produktionsumgebung Umgebung, Initialisierungsskripts nach Cloud Storage kopieren anstatt aus einem öffentlichen Repository zu beziehen. So wird verhindert, dass Initialisierungsscripts ausgeführt werden, die von anderen geändert werden können.

Dataproc-Versionshinweise überwachen

Dataproc veröffentlicht regelmäßig neue Sub-Minor-Image-Versionen. Lesen Sie die Dataproc-Versionshinweisen oder abonnieren Sie sie, um über die neuesten Dataproc-Image-Versionen und andere Ankündigungen, Änderungen und Fehlerkorrekturen informiert zu bleiben.

Staging-Bucket aufrufen, um Fehler zu untersuchen

  1. Sehen Sie sich den Staging-Bucket um Cluster- und Job-Fehlermeldungen zu untersuchen. In der Regel wird der Cloud Storage-Speicherort des Staging-Buckets in wie im fett formatierten Text im folgenden Beispielfehler Nachricht:

    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 kontaktieren

Google Cloud unterstützt Ihre OSS-Produktionslasten und hilft Ihnen, Ihre geschäftlichen SLAs durch Supportebenen einzuhalten. Außerdem hat Google Cloud Beratungsdienste können Ratschläge zu Best Practices geben. für die Produktionsbereitstellungen Ihres Teams.

Weitere Informationen