Eine Dataproc-NodeGroup
-Ressource ist eine Gruppe von Dataproc-Clusternodes, die eine zugewiesene Rolle ausführen. Auf dieser Seite wird die Treibernodegruppe beschrieben. Das ist eine Gruppe von Compute Engine-VMs, denen die Rolle Driver
zugewiesen ist, um Jobtreiber im Dataproc-Cluster auszuführen.
Wann sollten Treibernodegruppen verwendet werden?
- Verwenden Sie Driver-Knotengruppen nur, wenn Sie viele gleichzeitige Jobs in einem freigegebenen Cluster ausführen müssen.
- Erhöhen Sie die Ressourcen des Masterknotens, bevor Sie Treiberknotengruppen verwenden, um Einschränkungen bei Treiberknotengruppen zu vermeiden.
So können Sie mit Driver-Knoten mehrere Jobs gleichzeitig ausführen
Dataproc startet für jeden Job einen Jobtreiberprozess auf einem Masterknoten des Dataproc-Clusters. Der Treiberprozess wiederum führt einen Anwendungstreiber wie spark-submit
als untergeordneten Prozess aus.
Die Anzahl der parallelen Jobs, die auf dem Master ausgeführt werden, ist jedoch durch die auf dem Masterknoten verfügbaren Ressourcen begrenzt. Da Dataproc-Masterknoten nicht skaliert werden können, kann ein Job fehlschlagen oder gedrosselt werden, wenn die Ressourcen des Masterknotens nicht ausreichen, um einen Job auszuführen.
Treiberknotengruppen sind spezielle Knotengruppen, die von YARN verwaltet werden. Die Job-Concurrency wird daher nicht durch Masterknotenressourcen begrenzt. In Clustern mit einer Treiberknotengruppe werden Anwendungstreiber auf Treiberknoten ausgeführt. Auf jedem Treibernknoten können mehrere Anwendungstreiber ausgeführt werden, wenn der Knoten über genügend Ressourcen verfügt.
Vorteile
Wenn Sie einen Dataproc-Cluster mit einer Driver-Knotengruppe verwenden, haben Sie folgende Möglichkeiten:
- Horizontales Skalieren von Job-Treiberressourcen, um mehr parallele Jobs auszuführen
- Treiberrssourcen separat von Worker-Ressourcen skalieren
- Schnelleres Herunterskalieren auf Clustern mit Dataproc-Image-Version 2.0 und höher In diesen Clustern wird der App-Master in einem Spark-Treiber in einer Treiberknotengruppe ausgeführt (
spark.yarn.unmanagedAM.enabled
ist standardmäßig auftrue
festgelegt). - Start des Treibernodes anpassen Sie können
{ROLE} == 'Driver'
in einem Initialisierungsskript hinzufügen, damit das Skript Aktionen für eine Driver-Knotengruppe in der Knotenauswahl ausführt.
Beschränkungen
- Knotengruppen werden in Dataproc-Workflow-Vorlagen nicht unterstützt.
- Knotengruppencluster können nicht gestoppt, neu gestartet oder automatisch skaliert werden.
- Der MapReduce-App-Master wird auf Worker-Knoten ausgeführt. Das Herunterskalieren von Worker-Knoten kann langsam sein, wenn Sie die schrittweise Außerbetriebnahme aktivieren.
- Die Job-Concurrency wird durch das Clusterattribut
dataproc:agent.process.threads.job.max
beeinflusst. Wenn Sie beispielsweise drei Masterknoten haben und diese Eigenschaft auf den Standardwert100
festgelegt ist, beträgt die maximale Job-Nebenläufigkeit auf Clusterebene300
.
Driver-Knotengruppe im Vergleich zum Spark-Clustermodus
Funktion | Spark-Clustermodus | Treibernotengruppe |
---|---|---|
Herunterskalierung von Worker-Knoten | Langlebige Treiber werden auf denselben Worker-Knoten wie kurzlebige Container ausgeführt. Das Herunterskalieren von Workern mit Graceful Decommission ist daher langsam. | Worker-Knoten werden schneller herunterskaliert, wenn Treiber auf Knotengruppen ausgeführt werden. |
Gestreamte Treiberausgabe | Erfordert die Suche in YARN-Logs, um den Knoten zu finden, auf dem der Treiber geplant wurde. | Die Treiberausgabe wird in Cloud Storage gestreamt und ist nach Abschluss eines Jobs in der Google Cloud -Konsole und in der gcloud dataproc jobs wait -Befehlsausgabe sichtbar. |
IAM-Berechtigungen für Fahrerknotengruppen
Die folgenden IAM-Berechtigungen sind mit den Aktionen im Zusammenhang mit Dataproc-Knotengruppen verknüpft.
Berechtigung | Aktion |
---|---|
dataproc.nodeGroups.create
|
Dataproc-Knotengruppen erstellen Wenn ein Nutzer dataproc.clusters.create im Projekt hat, wird diese Berechtigung erteilt. |
dataproc.nodeGroups.get |
Details zu einer Dataproc-Knotengruppe abrufen. |
dataproc.nodeGroups.update |
Größe einer Dataproc-Knotengruppe ändern |
Vorgänge für Treibernotengruppen
Sie können die gcloud CLI und die Dataproc API verwenden, um eine Dataproc-Treibernotengruppe zu erstellen, abzurufen, in der Größe zu ändern, zu löschen und einen Job an sie zu senden.
Cluster mit Knotengruppe für Treiber erstellen
Eine Driver-Knotengruppe ist einem Dataproc-Cluster zugeordnet. Sie erstellen eine Knotengruppe im Rahmen der Erstellung eines Dataproc-Clusters. Sie können die gcloud CLI oder die Dataproc REST API verwenden, um einen Dataproc-Cluster mit einer Driver-Knotengruppe zu erstellen.
gcloud
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --driver-pool-size=SIZE \ --driver-pool-id=NODE_GROUP_ID
Erforderliche Flags:
- CLUSTER_NAME: Der Clustername, der innerhalb eines Projekts eindeutig sein muss. Der Name muss mit einem Kleinbuchstaben beginnen und darf bis zu 51 Kleinbuchstaben, Ziffern und Bindestriche enthalten. Sie darf nicht mit einem Bindestrich enden. Der Name eines gelöschten Clusters kann wiederverwendet werden.
- REGION: Die Region, in der sich der Cluster befinden wird.
- SIZE: Die Anzahl der Treibernodes in der Knotengruppe. Die Anzahl der benötigten Knoten hängt von der Joblast und dem Maschinentyp des Treiberpools ab. Die Anzahl der minimalen Driver-Gruppenknoten entspricht dem Gesamtspeicher oder den vCPUs, die von Job-Treibern benötigt werden, geteilt durch den Arbeitsspeicher oder die vCPUs der einzelnen Driver-Pools.
- NODE_GROUP_ID: Optional und empfohlen. Die ID muss innerhalb des Clusters eindeutig sein. Verwenden Sie diese ID, um die Treibergruppe bei zukünftigen Vorgängen wie dem Ändern der Größe der Knotengruppe zu identifizieren. Wenn nicht angegeben, generiert Dataproc die ID der Knotengruppe.
Empfohlene Flag:
--enable-component-gateway
: Fügen Sie dieses Flag hinzu, um das Dataproc Component Gateway zu aktivieren, das Zugriff auf die YARN-Weboberfläche bietet. Auf den Seiten „YARN UI Application“ und „Scheduler“ werden der Cluster- und Jobstatus, der Arbeitsspeicher der Anwendungs-Queue, die Kernkapazität und andere Messwerte angezeigt.
Zusätzliche Flags:Die folgenden optionalen driver-pool
-Flags können dem Befehl gcloud dataproc clusters create
hinzugefügt werden, um die Knotengruppe anzupassen.
Flag | Standardwert |
---|---|
--driver-pool-id |
Eine String-Kennung, die vom Dienst generiert wird, wenn sie nicht durch das Flag festgelegt wird. Diese ID kann verwendet werden, um die Knotengruppe bei zukünftigen Knotenpoolvorgängen zu identifizieren, z. B. beim Ändern der Größe der Knotengruppe. |
--driver-pool-machine-type |
n1-standard-4 |
--driver-pool-accelerator |
Kein Standardeinstellung Wenn Sie einen Beschleuniger angeben, ist der GPU-Typ erforderlich. Die Anzahl der GPUs ist optional. |
--num-driver-pool-local-ssds |
Kein Standard |
--driver-pool-local-ssd-interface |
Kein Standard |
--driver-pool-boot-disk-type |
pd-standard |
--driver-pool-boot-disk-size |
1000 GB |
--driver-pool-min-cpu-platform |
AUTOMATIC |
REST
Füllen Sie eine AuxiliaryNodeGroup als Teil einer Dataproc API-Anfrage cluster.create
aus.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: erforderlich. Google Cloud-Projekt-ID
- REGION: erforderlich. Region des Dataproc-Clusters.
- CLUSTER_NAME: erforderlich. Der Clustername, der innerhalb eines Projekts eindeutig sein muss. Der Name muss mit einem Kleinbuchstaben beginnen und darf bis zu 51 Kleinbuchstaben, Ziffern und Bindestriche enthalten. Er darf nicht mit einem Bindestrich enden. Der Name eines gelöschten Clusters kann wiederverwendet werden.
- SIZE: erforderlich. Anzahl der Knoten in der Knotengruppe.
- NODE_GROUP_ID: Optional und empfohlen. Die ID muss innerhalb des Clusters eindeutig sein. Verwenden Sie diese ID, um die Treibergruppe bei zukünftigen Vorgängen wie dem Ändern der Größe der Knotengruppe zu identifizieren. Wenn nicht angegeben, generiert Dataproc die ID der Knotengruppe.
Zusätzliche Optionen:Siehe NodeGroup.
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
JSON-Text anfordern:
{ "clusterName":"CLUSTER_NAME", "config": { "softwareConfig": { "imageVersion":"" }, "endpointConfig": { "enableHttpPortAccess": true }, "auxiliaryNodeGroups": [{ "nodeGroup":{ "roles":["DRIVER"], "nodeGroupConfig": { "numInstances": SIZE } }, "nodeGroupId": "NODE_GROUP_ID" }] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "projectId": "PROJECT_ID", "clusterName": "CLUSTER_NAME", "config": { ... "auxiliaryNodeGroups": [ { "nodeGroup": { "name": "projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/NODE_GROUP_ID", "roles": [ "DRIVER" ], "nodeGroupConfig": { "numInstances": SIZE, "instanceNames": [ "CLUSTER_NAME-np-q1gp", "CLUSTER_NAME-np-xfc0" ], "imageUri": "https://www.googleapis.com/compute/v1/projects/cloud-dataproc-ci/global/images/dataproc-2-0-deb10-...-rc01", "machineTypeUri": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/REGION-a/machineTypes/n1-standard-4", "diskConfig": { "bootDiskSizeGb": 1000, "bootDiskType": "pd-standard" }, "managedGroupConfig": { "instanceTemplateName": "dataproc-2a8224d2-...", "instanceGroupManagerName": "dataproc-2a8224d2-..." }, "minCpuPlatform": "AUTOMATIC", "preemptibility": "NON_PREEMPTIBLE" } }, "nodeGroupId": "NODE_GROUP_ID" } ] }, }
Clustermetadaten der Driver-Knotengruppe abrufen
Sie können den Befehl gcloud dataproc node-groups describe
oder die Dataproc API verwenden, um Metadaten der Driver-Knotengruppe abzurufen.
gcloud
gcloud dataproc node-groups describe NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION
Erforderliche Flags:
- NODE_GROUP_ID: Sie können
gcloud dataproc clusters describe CLUSTER_NAME
ausführen, um die Knotengruppen-ID aufzulisten. - CLUSTER_NAME: Der Clustername.
- REGION: Die Clusterregion.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: erforderlich. Google Cloud-Projekt-ID
- REGION: erforderlich. Die Clusterregion.
- CLUSTER_NAME: erforderlich. Der Name des Clusters.
- NODE_GROUP_ID: erforderlich. Sie können
gcloud dataproc clusters describe CLUSTER_NAME
ausführen, um die Knoten-ID aufzulisten.
HTTP-Methode und URL:
GET https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAMEnodeGroups/Node_GROUP_ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/NODE_GROUP_ID", "roles": [ "DRIVER" ], "nodeGroupConfig": { "numInstances": 5, "imageUri": "https://www.googleapis.com/compute/v1/projects/cloud-dataproc-ci/global/images/dataproc-2-0-deb10-...-rc01", "machineTypeUri": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/REGION-a/machineTypes/n1-standard-4", "diskConfig": { "bootDiskSizeGb": 1000, "bootDiskType": "pd-standard" }, "managedGroupConfig": { "instanceTemplateName": "dataproc-driver-pool-mcia3j656h2fy", "instanceGroupManagerName": "dataproc-driver-pool-mcia3j656h2fy" }, "minCpuPlatform": "AUTOMATIC", "preemptibility": "NON_PREEMPTIBLE" } }
Größe einer Fahrerknotengruppe ändern
Sie können den Befehl gcloud dataproc node-groups resize
oder die Dataproc API verwenden, um einer Cluster-Treibernodegruppe Treibernodes hinzuzufügen oder daraus zu entfernen.
gcloud
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=SIZE
Erforderliche Flags:
- NODE_GROUP_ID: Sie können
gcloud dataproc clusters describe CLUSTER_NAME
ausführen, um die Knotengruppen-ID aufzulisten. - CLUSTER_NAME: Der Clustername.
- REGION: Die Clusterregion.
- SIZE: Geben Sie die neue Anzahl der Treiberknoten in der Knotengruppe an.
Optionale Flag:
--graceful-decommission-timeout=TIMEOUT_DURATION
: Wenn Sie eine Knotengruppe herunterskalieren, können Sie dieses Flag hinzufügen, um eine ordnungsgemäße Außerbetriebnahme TIMEOUT_DURATION anzugeben und so das sofortige Beenden von Job-Treibern zu vermeiden. Empfehlung:Legen Sie eine Zeitüberschreitungsdauer fest, die mindestens der Dauer des längsten Jobs entspricht, der in der Knotengruppe ausgeführt wird. Die Wiederherstellung fehlgeschlagener Treiber wird nicht unterstützt.
Beispiel: gcloud CLI-Befehl zum Hochskalieren von NodeGroup
:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=4
Beispiel: gcloud CLI-Befehl zum Herunterskalieren von NodeGroup
:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=1 \ --graceful-decommission-timeout="100s"
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: erforderlich. Google Cloud-Projekt-ID
- REGION: erforderlich. Die Clusterregion.
- NODE_GROUP_ID: erforderlich. Sie können
gcloud dataproc clusters describe CLUSTER_NAME
ausführen, um die ID der Knotengruppe aufzulisten. - SIZE: erforderlich. Neue Anzahl von Knoten in der Knotengruppe.
- TIMEOUT_DURATION: Optional. Wenn Sie eine Knotengruppe herunterskalieren, können Sie dem Anfragetext ein
gracefulDecommissionTimeout
hinzufügen, um die sofortige Beendigung von Job-Treibern zu vermeiden. Empfehlung:Legen Sie eine Zeitüberschreitungsdauer fest, die mindestens der Dauer des längsten Jobs entspricht, der in der Knotengruppe ausgeführt wird. Die Wiederherstellung fehlgeschlagener Treiber wird nicht unterstützt.Beispiel:
{ "size": SIZE, "gracefulDecommissionTimeout": "TIMEOUT_DURATION" }
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/Node_GROUP_ID:resize
JSON-Text anfordern:
{ "size": SIZE, }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.dataproc.v1.NodeGroupOperationMetadata", "nodeGroupId": "NODE_GROUP_ID", "clusterUuid": "CLUSTER_UUID", "status": { "state": "PENDING", "innerState": "PENDING", "stateStartTime": "2022-12-01T23:34:53.064308Z" }, "operationType": "RESIZE", "description": "Scale "up or "down" a GCE node pool to SIZE nodes." } }
Treiberknotengruppencluster löschen
Wenn Sie einen Dataproc-Cluster löschen, werden auch die mit dem Cluster verknüpften Knotengruppen gelöscht.
Job senden
Sie können den Befehl gcloud dataproc jobs submit
oder die Dataproc API verwenden, um einen Job an einen Cluster mit einer Driver-Knotengruppe zu senden.
gcloud
gcloud dataproc jobs submit JOB_COMMAND \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=DRIVER_MEMORY \ --driver-required-vcores=DRIVER_VCORES \ DATAPROC_FLAGS \ -- JOB_ARGS
Erforderliche Flags:
- JOB_COMMAND: Geben Sie den Job-Befehl an.
- CLUSTER_NAME: Der Clustername.
- DRIVER_MEMORY: Menge des Arbeitsspeichers für Job-Treiber in MB, die zum Ausführen eines Jobs erforderlich ist (siehe Yarn Memory Controls).
- DRIVER_VCORES: Die Anzahl der vCPUs, die zum Ausführen eines Jobs erforderlich sind.
Zusätzliche Flags:
- DATAPROC_FLAGS: Fügen Sie alle zusätzlichen gcloud dataproc jobs submit-Flags hinzu, die sich auf den Jobtyp beziehen.
- JOB_ARGS: Fügen Sie alle Argumente hinzu, die nach dem
--
an den Job übergeben werden sollen.
Beispiele:Sie können die folgenden Beispiele in einer SSH-Terminalsitzung in einem Dataproc-Cluster mit einer Treiberknotengruppe ausführen.
Spark-Job zum Schätzen des Werts von
pi
:gcloud dataproc jobs submit spark \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 1000
Spark-WordCount-Job:
gcloud dataproc jobs submit spark \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --class=org.apache.spark.examples.JavaWordCount \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 'gs://apache-beam-samples/shakespeare/macbeth.txt'
PySpark-Job zum Schätzen des Werts von
pi
:gcloud dataproc jobs submit pyspark \ file:///usr/lib/spark/examples/src/main/python/pi.py \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ -- 1000
Hadoop-MapReduce-Job TeraGen:
gcloud dataproc jobs submit hadoop \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --jar file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \ -- teragen 1000 \ hdfs:///gen1/test
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: erforderlich. Google Cloud-Projekt-ID
- REGION: erforderlich. Region des Dataproc-Clusters
- CLUSTER_NAME: erforderlich. Der Clustername, der innerhalb eines Projekts eindeutig sein muss. Der Name muss mit einem Kleinbuchstaben beginnen und darf bis zu 51 Kleinbuchstaben, Ziffern und Bindestriche enthalten. Er darf nicht mit einem Bindestrich enden. Der Name eines gelöschten Clusters kann wiederverwendet werden.
- DRIVER_MEMORY: erforderlich. Die Menge an Arbeitsspeicher für Jobtreiber in MB, die zum Ausführen eines Jobs erforderlich ist (siehe Yarn Memory Controls).
- DRIVER_VCORES: erforderlich. Die Anzahl der vCPUs, die zum Ausführen eines Jobs erforderlich sind.
pi
geschätzt wird.
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/jobs:submit
JSON-Text anfordern:
{ "job": { "placement": { "clusterName": "CLUSTER_NAME", }, "driverSchedulingConfig": { "memoryMb]": DRIVER_MEMORY, "vcores": DRIVER_VCORES }, "sparkJob": { "jarFileUris": "file:///usr/lib/spark/examples/jars/spark-examples.jar", "args": [ "10000" ], "mainClass": "org.apache.spark.examples.SparkPi" } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "reference": { "projectId": "PROJECT_ID", "jobId": "job-id" }, "placement": { "clusterName": "CLUSTER_NAME", "clusterUuid": "cluster-Uuid" }, "sparkJob": { "mainClass": "org.apache.spark.examples.SparkPi", "args": [ "1000" ], "jarFileUris": [ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ] }, "status": { "state": "PENDING", "stateStartTime": "start-time" }, "jobUuid": "job-Uuid" }
Python
- Clientbibliothek installieren
- Standardanmeldedaten für Anwendungen einrichten
- Führen Sie den Code aus
- Spark-Job zum Schätzen des Werts von Pi:
- PySpark-Job zum Ausgeben von „Hello World“:
Joblogs ansehen
Wenn Sie den Jobstatus aufrufen und Probleme mit Jobs beheben möchten, können Sie die Treiberlogs mit der gcloud CLI oder der Google Cloud -Konsole aufrufen.
gcloud
Job-Treiberlogs werden während der Jobausführung in die gcloud CLI-Ausgabe oder dieGoogle Cloud -Konsole gestreamt. Treiberlogs werden im Staging-Bucket des Dataproc-Clusters in Cloud Storage gespeichert.
Führen Sie den folgenden gcloud CLI-Befehl aus, um den Speicherort der Treiberlogs in Cloud Storage aufzulisten:
gcloud dataproc jobs describe JOB_ID \ --region=REGION
Der Cloud Storage-Speicherort von Treiberlogs wird in der Befehlsausgabe als driverOutputResourceUri
im folgenden Format aufgeführt:
driverOutputResourceUri: gs://CLUSTER_STAGING_BUCKET/google-cloud-dataproc-metainfo/CLUSTER_UUID/jobs/JOB_ID
Konsole
So rufen Sie Clusterlogs für Knotengruppen auf:
Sie können das folgende Log-Explorer-Abfrageformat verwenden, um Logs zu finden:
Ersetzen Sie Folgendes:resource.type="cloud_dataproc_cluster" resource.labels.project_id="PROJECT_ID" resource.labels.cluster_name="CLUSTER_NAME" log_name="projects/PROJECT_ID/logs/LOG_TYPE>"
- PROJECT_ID: Google Cloud Projekt-ID.
- CLUSTER_NAME: Der Clustername.
- LOG_TYPE:
- Yarn-Nutzerprotokolle:
yarn-userlogs
- YARN-Ressourcenmanager-Logs:
hadoop-yarn-resourcemanager
- YARN-Knotenmanager-Logs:
hadoop-yarn-nodemanager
- Yarn-Nutzerprotokolle:
Messwerte überwachen
Dataproc-Knotengruppen-Job-Treiber werden in einer untergeordneten dataproc-driverpool-driver-queue
-Warteschlange unter einer dataproc-driverpool
-Partition ausgeführt.
Messwerte für die Driver-Knotengruppe
In der folgenden Tabelle sind die zugehörigen Messwerte für Knotengruppentreiber aufgeführt, die standardmäßig für Treiberknotengruppen erfasst werden.
Messwert für die Knotengruppe des Treibers | Beschreibung |
---|---|
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB |
Die Menge des verfügbaren Speichers in Mebibyte in dataproc-driverpool-driver-queue unter der Partition dataproc-driverpool .
|
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers |
Die Anzahl der ausstehenden (in die Warteschlange eingereihten) Container in dataproc-driverpool-driver-queue unter der Partition dataproc-driverpool . |
Messwerte für untergeordnete Warteschlangen
In der folgenden Tabelle sind die Messwerte für untergeordnete Warteschlangen aufgeführt. Die Messwerte werden standardmäßig für Driver-Knotengruppen erfasst und können für die Erfassung in allen Dataproc-Clustern aktiviert werden.
Messwert für untergeordnete Warteschlange | Beschreibung |
---|---|
yarn:ResourceManager:ChildQueueMetrics:AvailableMB |
Die Menge des verfügbaren Speichers in Mebibyte in dieser Warteschlange unter der Standardpartition. |
yarn:ResourceManager:ChildQueueMetrics:PendingContainers |
Anzahl der ausstehenden (in der Warteschlange befindlichen) Container in dieser Warteschlange in der Standardpartition. |
yarn:ResourceManager:ChildQueueMetrics:running_0 |
Die Anzahl der Jobs mit einer Laufzeit zwischen 0 und 60 Minuten in dieser Warteschlange unter allen Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:running_60 |
Die Anzahl der Jobs mit einer Laufzeit zwischen 60 und 300 Minuten in dieser Warteschlange unter allen Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:running_300 |
Die Anzahl der Jobs mit einer Laufzeit zwischen 300 und 1440 Minuten in dieser Warteschlange unter allen Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:running_1440 |
Die Anzahl der Jobs mit einer Laufzeit von mehr als 1440 Minuten in dieser Warteschlange für alle Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:AppsSubmitted |
Anzahl der in dieser Warteschlange eingereichten Anträge für alle Partitionen. |
So rufen Sie YARN ChildQueueMetrics
und DriverPoolsQueueMetrics
in derGoogle Cloud Console auf:
Wählen Sie im Metrics Explorer die Ressourcen VM-Instanz → Benutzerdefiniert aus.
Jobtreiber für Knotengruppe debuggen
In diesem Abschnitt finden Sie Bedingungen und Fehler für Treiberknotengruppen sowie Empfehlungen zur Behebung der Bedingung oder des Fehlers.
Bedingungen
Bedingung:
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB
nähert sich0
. Dies weist darauf hin, dass im Cluster-Treiberpool nicht mehr genügend Speicherplatz verfügbar ist.Empfehlung: Erhöhen Sie die Anzahl der Fahrer.
Bedingung:
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers
ist größer als 0. Dies kann darauf hindeuten, dass der Arbeitsspeicher des Cluster-Treiberpools knapp wird und YARN Jobs in die Warteschlange stellt.Empfehlung: Erhöhen Sie die Anzahl der Fahrer.
Fehler
Fehler:
Cluster <var>CLUSTER_NAME</var> requires driver scheduling config to run SPARK job because it contains a node pool with role DRIVER. Positive values are required for all driver scheduling config values.
Empfehlung:Legen Sie
driver-required-memory-mb
unddriver-required-vcores
mit positiven Zahlen fest.Fehler:
Container exited with a non-zero exit code 137
.Empfehlung:Erhöhen Sie
driver-required-memory-mb
für die Arbeitsspeichernutzung des Jobs.