Überblick
Eine Dataproc-Ressource NodeGroup
ist eine Gruppe von Dataproc-Clusterknoten, die eine zugewiesene Rolle ausführen. Auf dieser Seite wird die Treiberknotengruppe beschrieben. Dabei handelt es sich um eine Gruppe von Compute Engine-VMs, denen die Rolle Driver
zugewiesen ist, um Jobtreiber im Dataproc-Cluster auszuführen.
Wann werden Treiberknotengruppen verwendet?
- Verwenden Sie Treiberknotengruppen nur, wenn Sie viele Jobs gleichzeitig in einem freigegebenen Cluster ausführen müssen.
- Erhöhen Sie die Masterknotenressourcen, bevor Sie Treiberknotengruppen verwenden, um Einschränkungen für Treiberknotengruppen zu vermeiden.
So können Sie mit Treiberknoten gleichzeitig Jobs ausführen
Dataproc startet für jeden Job einen Jobtreiberprozess auf einem Dataproc-Clustermasterknoten. Der Treiberprozess wiederum führt einen Anwendungstreiber wie spark-submit
als untergeordneten Prozess aus.
Die Anzahl der gleichzeitig auf dem Master ausgeführten Jobs 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 Masterknotenressourcen zum Ausführen eines Jobs nicht ausreichen.
Treiberknotengruppen sind spezielle Knotengruppen, die von YARN verwaltet werden, sodass die Nebenläufigkeit von Jobs nicht durch Master-Knotenressourcen begrenzt wird. In Clustern mit einer Treiberknotengruppe werden Anwendungstreiber auf Treiberknoten ausgeführt. Jeder Treiberknoten kann mehrere Anwendungstreiber ausführen, wenn der Knoten genügend Ressourcen hat.
Vorteile
Wenn Sie einen Dataproc-Cluster mit einer Treiberknotengruppe verwenden, können Sie:
- Jobtreiberressourcen horizontal skalieren, um mehr gleichzeitige Jobs auszuführen
- Treiberressourcen getrennt von Worker-Ressourcen skalieren
- Schnelleres Herunterskalieren von Image-Clustern mit Dataproc 2.0 und höher Auf diesen Clustern wird der Anwendungsmaster innerhalb eines Spark-Treibers in einer Treiberknotengruppe ausgeführt (
spark.yarn.unmanagedAM.enabled
ist standardmäßig auftrue
gesetzt). - Start von Treiberknoten anpassen. Sie können einem Initialisierungsskript
{ROLE} == 'Driver'
hinzufügen, damit das Skript Aktionen für eine Treiberknotengruppe in der Knotenauswahl ausführt.
Beschränkungen
- Knotengruppen werden in Dataproc-Workflow-Vorlagen nicht unterstützt.
- Cluster der Knotengruppe können nicht beendet, neu gestartet oder automatisch skaliert werden.
- Der MapReduce-Anwendungsmaster wird auf Worker-Knoten ausgeführt. Das Herunterskalieren von Worker-Knoten kann langsam sein, wenn Sie die ordnungsgemäße Außerbetriebnahme aktivieren.
- Die Nebenläufigkeit von Jobs wird durch das Clusterattribut
dataproc:agent.process.threads.job.max
beeinflusst. Wenn beispielsweise drei Master und dieses Attribut auf den Standardwert100
gesetzt ist, beträgt die maximale Nebenläufigkeit von Jobs auf Clusterebene300
.
Treiberknotengruppe im Vergleich zum Spark-Clustermodus
Funktion | Spark-Clustermodus | Treiber-Knotengruppe |
---|---|---|
Herunterskalieren von Worker-Knoten | Langlebige Treiber werden auf denselben Worker-Knoten wie kurzlebige Container ausgeführt, sodass das Herunterskalieren von Workern durch die ordnungsgemäße Außerbetriebnahme langsam ist. | Worker-Knoten werden schneller herunterskaliert, wenn Treiber in Knotengruppen ausgeführt werden. |
Gestreamte Treiberausgabe | Erfordert eine Suche in YARN-Protokollen, 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 Console und in der gcloud dataproc jobs wait -Befehlsausgabe einsehbar. |
IAM-Berechtigungen für Treiberknotengruppen
Die folgenden IAM-Berechtigungen sind den folgenden Aktionen für Dataproc-Knotengruppen zugeordnet.
Berechtigung | Aktion |
---|---|
dataproc.nodeGroups.create
|
Dataproc-Knotengruppen erstellen Wenn ein Nutzer im Projekt dataproc.clusters.create hat, wird diese Berechtigung erteilt. |
dataproc.nodeGroups.get |
Rufen Sie die Details einer Dataproc-Knotengruppe ab. |
dataproc.nodeGroups.update |
Größe einer Dataproc-Knotengruppe ändern |
Vorgänge der Treiberknotengruppe
Sie können die gcloud CLI und die Dataproc API verwenden, um einen Job zu erstellen, abzurufen, zu ändern, zu löschen, zu löschen und an eine Dataproc-Treiberknotengruppe zu senden.
Cluster für Treiberknotengruppe erstellen
Eine Treiberknotengruppe ist einem Dataproc-Cluster zugeordnet. Eine Knotengruppe wird beim Erstellen eines Dataproc-Clusters erstellt. Sie können die gcloud CLI oder die Dataproc REST API verwenden, um einen Dataproc-Cluster mit einer Treiberknotengruppe 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 nur einmal vorkommen darf. Der Name muss mit einem Kleinbuchstaben beginnen und kann bis zu 51 Kleinbuchstaben, Ziffern und Bindestriche enthalten. Das letzte Zeichen darf kein Bindestrich sein. Der Name eines gelöschten Clusters kann wiederverwendet werden.
- REGION: Die Region, in der sich der Cluster befindet.
- SIZE: Die Anzahl der Treiberknoten in der Knotengruppe. Die Anzahl der erforderlichen Knoten hängt von der Joblast und dem Maschinentyp des Treiberpools ab. Die Anzahl der minimalen Treibergruppenknoten entspricht der Gesamtzahl des Arbeitsspeichers oder der vCPUs, die von Jobtreibern benötigt werden, dividiert durch den Maschinenarbeitsspeicher oder die vCPUs jedes Treiberpools.
- NODE_GROUP_ID: Optional und empfohlen. Die ID darf innerhalb des Clusters nur einmal vorkommen. Verwenden Sie diese ID, um die Treibergruppe bei zukünftigen Vorgängen zu identifizieren, z. B. bei einer Größenanpassung der Knotengruppe. Wenn Sie nichts angeben, generiert Dataproc die Knotengruppen-ID.
Empfohlenes 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 der YARN-UI und des Planers werden der Cluster- und Jobstatus, der Arbeitsspeicher der Anwendungswarteschlange, 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 vom Dienst generierte String-ID, wenn diese nicht durch das Flag festgelegt ist. Mit dieser ID kann die Knotengruppe bei zukünftigen Knotenpoolvorgängen identifiziert werden, z. B. bei einer Größenanpassung der Knotengruppe. |
--driver-pool-machine-type |
n1-standard-4 |
--driver-pool-accelerator |
Kein Standardeinstellung Bei der Angabe eines Beschleunigers 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
Schließen Sie eine AuxiliaryNodeGroup im Rahmen einer cluster.create
-Anfrage der Dataproc API ab.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID: erforderlich. Google Cloud-Projekt-ID
- REGION: erforderlich. Region des Dataproc-Clusters
- CLUSTER_NAME: erforderlich. Der Clustername, der innerhalb eines Projekts nur einmal vorkommen darf. Der Name muss mit einem Kleinbuchstaben beginnen und kann 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 darf innerhalb des Clusters nur einmal vorkommen. Verwenden Sie diese ID, um die Treibergruppe bei zukünftigen Vorgängen zu identifizieren, z. B. bei einer Größenanpassung der Knotengruppe. Wenn nicht angegeben, generiert Dataproc die Knotengruppen-ID.
Zusätzliche Optionen: Siehe NodeGroup.
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
JSON-Text der Anfrage:
{ "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 in etwa folgende JSON-Antwort 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 Treiberknotengruppe abrufen
Mit dem Befehl gcloud dataproc node-groups describe oder der Dataproc API können Sie Metadaten für Treiberknotengruppen abrufen.
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
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID: erforderlich. Google Cloud-Projekt-ID
- REGION: erforderlich. Die Clusterregion.
- CLUSTER_NAME: erforderlich. Der Clustername.
- NODE_GROUP_ID: erforderlich. Sie können
gcloud dataproc clusters describe CLUSTER_NAME
ausführen, um die Knotengruppen-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 in etwa folgende JSON-Antwort 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 Treiberknotengruppe anpassen
Mit dem Befehl gcloud dataproc node-groups size oder der Dataproc API können Sie Treiberknoten zu einer Clustertreiber-Knotengruppe hinzufügen oder daraus 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 von Treiberknoten in der Knotengruppe an.
Optionales Flag:
--graceful-decommission-timeout=TIMEOUT_DURATION
: Beim Herunterskalieren einer Knotengruppe können Sie dieses Flag hinzufügen, um eine ordnungsgemäße Außerbetriebnahme TIMEOUT_DURATION anzugeben und so zu verhindern, dass Jobtreiber sofort beendet werden. Empfehlung: Legen Sie ein Zeitlimit fest, das mindestens der Dauer des längsten Jobs entspricht, der in der Knotengruppe ausgeführt wird. Die Wiederherstellung fehlgeschlagener Treiber wird nicht unterstützt.
Beispiel: Befehl NodeGroup
zum Hochskalieren in der gcloud CLI:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=4
Beispiel: Befehl NodeGroup
zum Herunterskalieren in der gcloud CLI:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=1 \ --graceful-decommission-timeout="100s"
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- 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 Knotengruppen-ID aufzulisten. - SIZE: erforderlich. Neue Anzahl von Knoten in der Knotengruppe.
- TIMEOUT_DURATION: Optional. Beim Herunterskalieren einer Knotengruppe können Sie eine
gracefulDecommissionTimeout
in den Anfragetext einfügen, um zu verhindern, dass Jobtreiber sofort beendet werden. Empfehlung: Legen Sie ein Zeitlimit fest, das 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 der Anfrage:
{ "size": SIZE, }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort 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." } }
Cluster der Treiberknotengruppe 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 Treiberknotengruppe 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 Jobbefehl an.
- CLUSTER_NAME: Der Clustername.
- DRIVER_MEMORY: Menge des Jobtreiber-Arbeitsspeichers in MB, der zum Ausführen eines Jobs erforderlich ist (siehe Yarn-Speichersteuerung).
- 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 Flags gcloud dataproc jobs submit hinzu, die mit dem Jobtyp zusammenhängen.
- JOB_ARGS: Fügen Sie beliebige Argumente nach
--
hinzu, die an den Job übergeben werden sollen.
Beispiele: Sie können die folgenden Beispiele über eine SSH-Terminalsitzung in einem Cluster von Dataproc-Treiberknotengruppen ausführen.
Spark-Job zur Schätzung 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 zur Schätzung 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-TeraGen-MapReduce-Job:
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
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID: erforderlich. Google Cloud-Projekt-ID
- REGION: erforderlich. Region des Dataproc-Clusters
- CLUSTER_NAME: erforderlich. Der Clustername, der innerhalb eines Projekts nur einmal vorkommen darf. Der Name muss mit einem Kleinbuchstaben beginnen und kann 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. Menge des Jobtreiber-Arbeitsspeichers in MB, der zum Ausführen eines Jobs erforderlich ist (siehe Yarn-Arbeitsspeichersteuerelemente).
- DRIVER_VCORES: erforderlich. Die Anzahl der vCPUs, die zum Ausführen eines Jobs erforderlich sind.
pi
schätzt.
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/jobs:submit
JSON-Text der Anfrage:
{ "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 in etwa folgende JSON-Antwort 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" }
Joblogs ansehen
Um den Jobstatus anzusehen und Jobprobleme zu beheben, können Sie Treiberlogs über die gcloud CLI oder die Google Cloud Console aufrufen.
gcloud
Jobtreiberlogs werden während der Jobausführung an die Ausgabe der gcloud CLI oder die Google Cloud Console gestreamt. Treiberlogs bleiben im Staging-Bucket des Dataproc-Clusters in Cloud Storage erhalten.
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
Console
So rufen Sie Clusterlogs für Knotengruppen auf:
Sie können Logs mit dem folgenden Abfrageformat für den Log-Explorer finden:
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>"
Dabei gilt:- PROJECT_ID: Google Cloud-Projekt-ID.
- CLUSTER_NAME: Der Clustername.
- LOG_TYPE:
- Yarn-Nutzerprotokolle:
yarn-userlogs
- Yarn Resource Manager-Logs:
hadoop-yarn-resourcemanager
- Logs des Yarn-Knotenmanagers:
hadoop-yarn-nodemanager
- Yarn-Nutzerprotokolle:
Messwerte überwachen
Jobtreiber für Dataproc-Knotengruppen werden in einer untergeordneten dataproc-driverpool-driver-queue
-Warteschlange in einer dataproc-driverpool
-Partition ausgeführt.
Messwerte für Treiberknotengruppen
In der folgenden Tabelle sind die Treibermesswerte für zugehörige Knotengruppen aufgeführt, die standardmäßig für Treiberknotengruppen erfasst werden.
Messwert der Treiber-Knotengruppe | Beschreibung |
---|---|
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB |
Die Menge des verfügbaren Arbeitsspeichers in Mebibyte in dataproc-driverpool-driver-queue in der Partition dataproc-driverpool .
|
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers |
Die Anzahl der ausstehenden Container (in der Warteschlange) in dataproc-driverpool-driver-queue in der Partition dataproc-driverpool . |
Messwerte für untergeordnete Warteschlangen
In der folgenden Tabelle sind die Messwerte der untergeordneten Warteschlangen aufgeführt. Die Messwerte werden standardmäßig für Treiberknotengruppen erfasst und können zur Erfassung in beliebigen Dataproc-Clustern aktiviert werden.
Messwert der untergeordneten Warteschlange | Beschreibung |
---|---|
yarn:ResourceManager:ChildQueueMetrics:AvailableMB |
Die Menge des verfügbaren Arbeitsspeichers in Mebibyte in dieser Warteschlange unter der Standardpartition. |
yarn:ResourceManager:ChildQueueMetrics:PendingContainers |
Anzahl der ausstehenden Container (in der Warteschlange) in dieser Warteschlange unter der Standardpartition. |
yarn:ResourceManager:ChildQueueMetrics:running_0 |
Die Anzahl der Jobs mit einer Laufzeit zwischen 0 und 60 Minuten in dieser Warteschlange in allen Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:running_60 |
Die Anzahl der Jobs mit einer Laufzeit zwischen 60 und 300 Minuten in dieser Warteschlange in allen Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:running_300 |
Die Anzahl der Jobs mit einer Laufzeit zwischen 300 und 1440 Minuten in dieser Warteschlange in allen Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:running_1440 |
Die Anzahl der Jobs mit einer Laufzeit von mehr als 1440 Minuten in dieser Warteschlange in allen Partitionen. |
yarn:ResourceManager:ChildQueueMetrics:AppsSubmitted |
Anzahl der Anwendungen, die für alle Partitionen an diese Warteschlange gesendet wurden. |
So rufen Sie YARN ChildQueueMetrics
und DriverPoolsQueueMetrics
in der Google Cloud Console auf:
- Wählen Sie im Metrics Explorer die Ressourcen VM-Instanz → Benutzerdefiniert aus.
Treiber-Fehlerbehebung für Knotengruppenjobs
Dieser Abschnitt enthält Bedingungen und Fehler von Treiberknotengruppen sowie Empfehlungen zur Behebung der Bedingung oder des Fehlers.
Bedingungen
Bedingung:
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB
naht sich0
. Dies weist darauf hin, dass in der Warteschlange der Clustertreiberpools nicht genügend Arbeitsspeicher zur Verfügung steht.Empfehlung: Skalieren Sie den Treiberpool hoch.
Bedingung:
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers
ist größer als 0. Dies kann darauf hindeuten, dass die Warteschlange der Clustertreiberpools nicht genügend Arbeitsspeicher hat und YARN Jobs in die Warteschlange stellt.Empfehlung: Skalieren Sie den Treiberpool hoch.
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 für
driver-required-memory-mb
unddriver-required-vcores
positive Zahlen fest.Fehler:
Container exited with a non-zero exit code 137
.Empfehlung: Erhöhen Sie die
driver-required-memory-mb
für die Jobarbeitsspeichernutzung.