Übersicht
Wenn Dataproc-Cluster gelöscht wurden, möchten Nutzer sich oft Jobverlaufsdateien für Diagnose- oder andere Zwecke ansehen. Der Dataproc-Verlaufsserver (PHS) bietet eine UI für den Aufruf des Jobverlaufs für Jobs, die in aktiven und gelöschten Dataproc-Clustern ausgeführt werden.
Der Persistent History Server wird in einem Dataproc-Cluster mit einzelnem Knoten ausgeführt und speichert Dateien mit Jobverlauf in Cloud Storage. Außerdem unterstützt er MapReduce-, Spark- und Pig-Jobs. Dieses Feature ist in der Dataproc-Image-Version 1.4-debian10 und höher verfügbar.

Jobcluster einrichten
Sie geben das folgende Flag und die Clusterattribute an, wenn Sie einen Dataproc-Jobcluster erstellen, in dem Joblogs so gespeichert werden, dass sie von einem Persistent History Server-Cluster aufgerufen und angezeigt werden können.
--enable-component-gateway
: Erforderliches Flag. Mit diesem Flag muss das Component Gateway aktiviert werden.dataproc:job.history.to-gcs.enabled
: Erforderliches Clusterattribut. Dieses Attribut muss auf „true“ gesetzt sein, um den Jobverlaufsspeicher in Cloud Storage zu aktivieren.spark:spark.history.fs.logDirectory
undspark:spark.eventLog.dir
Optionale Clusterattribute: Diese Flags geben den Speicherort zum Schreiben von Spark-Jobverlauf- und -Ereignislogs an. Bei Verwendung müssen beide Flags festgelegt werden und auf Verzeichnisse innerhalb desselben Buckets verweisen.
Beispielattribute:
spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history, spark:spark.eventLog.dir=gs://bucket-name/directory-name/spark-job-history
mapred:mapreduce.jobhistory.intermediate-done-dir
undmapred:mapreduce.jobhistory.done-dir
: Optionale Clusterattribute: Diese Flags geben den Cloud Storage-Speicherort an, um Zwischen- und endgültige MapReduce-Jobverlaufsdateien zu schreiben. Bei Verwendung müssen beide Flags festgelegt werden und auf Verzeichnisse innerhalb desselben Buckets verweisen. Der Zwischenspeicherortmapreduce.jobhistory.intermediate-done-dir
ist vorübergehender Speicher. Die Zwischendateien werden an den Standortmapreduce.jobhistory.done-dir
verschoben, wenn der MapReduce-Job abgeschlossen ist.
Beispielattribute:
mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory-name/mapreduce-job-history/done, mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done
- Führen Sie den Befehl
gcloud dataproc clusters create
aus, um einen Jobcluster zu erstellen. Der Cluster muss mit Image 1.4-debian10 oder höher erstellt werden. Hinweis: Zur besseren Lesbarkeit werden die Wert der Flags--property
in separaten Zeilen angezeigt. Wenn Sie den Befehl ausführen, müssen alle durch Kommas getrennten Werte für das Flag--property
in einer Zeile angegeben werden.gcloud dataproc clusters create cluster-name \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='dataproc:job.history.to-gcs.enabled=true, spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history, spark:spark.eventLog.dir=gs://bucket-name/directory/spark-job-history, mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory/mapreduce-job-history/done, mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done'
gcloud dataproc clusters create cluster-name \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='dataproc:job.history.to-gcs.enabled=true'
Wenn Sie den oben dargestellten vereinfachten Befehl verwenden, werden Jobverlaufsdateien im Dataproc-Temporäre Bucket in den Standardverzeichnissen /spark-job-history
, /mapreduce-job-history/done
, und /mapreduce-job-history/intermediate-done
.
Der Cloud Storage-Speicherort des temporären Buckets wird in der Ausgabe des Befehls gcloud dataproc clusters describe cluster-name --region=region
aufgeführt. Der Cloud Storage-Speicherort von Jobverlaufsdateien wird auch in den Dateien /etc/spark/conf/spark-defaults.conf
und /etc/hadoop/conf/mapred-site.xml
des Clusters aufgeführt.
Beispiele nach SSH-Verbindung herstellen zu dem Masterknoten des Jobclusters:
cat /etc/spark/conf/spark-defaults.conf ... spark.history.fs.logDirectory=gs://temp-bucket/spark-job-history spark.eventLog.dir=gs://temp-bucket/spark-job-history
cat /etc/hadoop/conf/mapred-site.xml ... <property> <name>mapreduce.jobhistory.done-dir</name> <value>gs://temp-bucket/mapreduce-job-history/done</value> </property> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>gs://temp-bucket/mapreduce-job-history/done_intermediate</value> </property>
Persistent History Server einrichten
Geben Sie beim Erstellen eines PHS-Einzel-Knoten-Clusters die folgenden Flag- und Clusterattribute an:
--enable-component-gateway
: Erforderliches Flag. Mit diesem Flag muss das Component Gateway aktiviert werden.spark:spark.history.fs.logDirectory
: Erforderliches Clusterattribut zum Aktivieren des persistenten Spark-Jobverlaufs. Dieses Attribut gibt den Cloud Storage-Bucket und die Verzeichnise an, in denen die PHS auf Spark-Jobverlaufslogs zugreifen soll, die von Jobclustern geschrieben wurden (siehe Jobcluster einrichten). Wenn Sie keine bestimmten Bucket-Verzeichnisse angeben, verwenden Sie Sternchen als Platzhalter (z. B.gs://bucket-name/*/spark-job-history
), damit der PHS-Server mit mehreren Verzeichnissen im angegebenen Bucket übereinstimmen kann, die in verschiedene Jobcluster geschrieben werden (aber Weitere Informationen finden Sie unter Kaufbereitschaft berücksichtigen: Mid-Path-Platzhalter verwenden.mapred:mapreduce.jobhistory.read-only.dir-pattern
: Erforderliche Clustereigenschaft zum Aktivieren des nichtflüchtigen MapReduce-Jobverlaufs. Dieses Attribut gibt die Cloud Storage-Bucket-Verzeichnisse an, in denen die PHS auf MapReduce-Jobverlaufslogs zugreifen kann, die von Jobclustern geschrieben wurden (siehe Jobcluster einrichten). Wenn Sie keine bestimmten Bucket-Verzeichnisse angeben, verwenden Sie Sternchen als Platzhalter, z. B.gs://bucket-name/*/mapreduce-job-history/done
, damit der PHS-Server mit mehreren Verzeichnissen im angegebenen Bucket übereinstimmen kann, die von verschiedenen Job-Clustern (siehe Verwendung von Mid-Path-Platzhaltern).
- Führen Sie den Befehl
gcloud dataproc clusters create
aus, um einen Dataproc-SCS-Cluster mit einem Knoten zu erstellen.gcloud dataproc clusters create cluster-name \ --single-node \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='spark:spark.history.fs.logDirectory=gs://bucket-name/*/spark-job-history,mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/*/mapreduce-job-history/done'
Jobverlaufsdateien aufrufen
Rufen Sie in der Cloud Console die Seite PHS-einzelne Knoten-Clusterdetails auf und dann klicken Sie auf den Tab "Weboberflächen".
Klicken Sie auf "MapReduce-Jobverlauf" oder "Spark-History Server", um die UIs für MapReduce und Spark-Jobverlauf aufzurufen.
Beispiel:
Der folgende Screenshot zeigt die UI des PHS-History Servers mit Links zu Spark-Jobs, die auf job-cluster-1 und job-cluster-2 ausgeführt werden, nachdem die
spark.history.fs.logDirectory
undspark:spark.eventLog.dir
der Jobcluster erstellt wurden wie folgt und diespark.history.fs.logDirectory
-Speicherorte des PHS-Clusters:job-cluster-1 gs://example-cloud-storage-bucket/job-cluster-1/spark-job-history job-cluster-2 gs://example-cloud-storage-bucket/job-cluster-2/spark-job-history phs-cluster gs://example-cloud-storage-bucket/*/spark-job-history