Überblick
Eine Dataproc-NodeGroup
-Ressource 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 auf einem freigegebenen Cluster ausführen müssen.
- Erhöhen Sie die Ressourcen der Masterknoten, 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 Masterknoten des Dataproc-Clusters. Der Treiberprozess wiederum führt einen Anwendungstreiber wie spark-submit
als untergeordneten Prozess aus.
Die Anzahl der gleichzeitig auf dem Master ausgeführten Jobs wird jedoch durch die Ressourcen begrenzt, die auf dem Masterknoten verfügbar sind. Da Dataproc-Masterknoten nicht skaliert werden können, kann ein Job fehlschlagen oder gedrosselt werden, wenn die Ressourcen des Masterknotens zum Ausführen eines Jobs nicht ausreichen.
Treiberknotengruppen sind spezielle Knotengruppen, die von YARN verwaltet werden. Die Nebenläufigkeit von Jobs wird daher nicht durch Masterknotenressourcen begrenzt. In Clustern mit einer Treiberknotengruppe werden Anwendungstreiber auf Treiberknoten ausgeführt. Jeder Treiberknoten kann mehrere Anwendungstreiber ausführen, wenn der Knoten über ausreichende Ressourcen verfügt.
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 von Dataproc 2.0 und höher und höher Auf diesen Clustern wird der Anwendungsmaster in einem Spark-Treiber in einer Treiberknotengruppe ausgeführt (
spark.yarn.unmanagedAM.enabled
ist standardmäßig auftrue
gesetzt). - Starten des Treiberknotens anpassen. Sie können
{ROLE} == 'Driver'
in einem Initialisierungsskript einfügen, damit das Skript Aktionen für eine Treiberknotengruppe in der Knotenauswahl ausführen kann.
Beschränkungen
- Knotengruppen werden in Dataproc-Workflowvorlagen nicht unterstützt.
- Knotengruppen 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 vom Clusterattribut
dataproc:agent.process.threads.job.max
beeinflusst. Beispiel: Wenn drei Master und dieses Attribut auf den Standardwert100
gesetzt sind, beträgt die maximale Nebenläufigkeit von Jobs auf Clusterebene300
.
Treiberknotengruppe im Vergleich zum Spark-Clustermodus
Feature | Spark-Clustermodus | Treiberknotengruppe |
---|---|---|
Herunterskalieren des Worker-Knotens | Langlebige Treiber werden auf denselben Worker-Knoten wie kurzlebige Container ausgeführt. Dadurch ist das Herunterskalieren von Workern bei der ordnungsgemäßen Außerbetriebnahme nur langsam. | Worker-Knoten werden schneller herunterskaliert, wenn Treiber in Knotengruppen ausgeführt werden. |
Gestreamte Treiberausgabe | Erfordert eine Suche in YARN-Logs, um den Knoten zu finden, auf dem der Treiber geplant wurde. | Die Treiberausgabe wird an Cloud Storage gestreamt und ist nach Abschluss eines Jobs in der Google Cloud Console und in der gcloud dataproc jobs wait -Befehlsausgabe sichtbar. |
IAM-Berechtigungen für Treiberknotengruppen
Die folgenden IAM-Berechtigungen sind den folgenden Aktionen in Bezug auf Dataproc-Knotengruppen zugeordnet.
Berechtigung | Vorgang |
---|---|
dataproc.nodeGroups.create
|
Erstellen Sie Dataproc-Knotengruppen. Wenn ein Nutzer im Projekt dataproc.clusters.create hat, wird diese Berechtigung gewährt. |
dataproc.nodeGroups.get |
Rufen Sie die Details einer Dataproc-Knotengruppe ab. |
dataproc.nodeGroups.update |
Ändern Sie die Größe einer Dataproc-Knotengruppe. |
Treiber-Knotengruppenvorgänge
Sie können die gcloud CLI und die Dataproc API verwenden, um einen Job zu erstellen, abzurufen, in der Größe zu ändern, zu löschen und an eine Dataproc-Treiber-Knotengruppe zu senden.
Treiberknotengruppencluster erstellen
Eine Treiberknotengruppe ist einem Dataproc-Cluster zugeordnet. Sie erstellen eine Knotengruppe beim Erstellen eines Dataproc-Clusters. Sie können die gcloud CLI oder 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 eindeutig sein muss. 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.
- REGION: Die Region, in der sich der Cluster befinden wird.
- SIZE: Die Anzahl der Treiberknoten in der Knotengruppe. Die Anzahl der benötigten Knoten hängt von der Joblast und dem Treiberpool-Maschinentyp ab. Die Anzahl der minimalen Treibergruppenknoten entspricht dem Gesamtarbeitsspeicher oder den vCPUs, die von Jobtreibern benötigt werden, geteilt durch den Maschinenarbeitsspeicher oder die vCPUs der einzelnen Treiberpools.
- 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 zu identifizieren, z. B. beim Ändern der Größe der Knotengruppe. Wenn keine Angabe erfolgt, generiert Dataproc die Knotengruppen-ID.
Empfohlenes Flag:
--enable-component-gateway
: Fügen Sie dieses Flag hinzu, um das Dataproc-Komponentengateway zu aktivieren, das Zugriff auf die YARN-Weboberfläche bietet. Auf den YARN-UI-Seiten „Anwendung“ und „Planer“ 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 String-ID, die vom Dienst generiert wird, wenn sie nicht vom Flag festgelegt wird. Mit dieser ID kann die Knotengruppe bei zukünftigen Knotenpoolvorgängen identifiziert werden, z. B. beim Anpassen der Größe der Knotengruppe. |
--driver-pool-machine-type |
n1-standard-4 |
--driver-pool-accelerator |
Kein Standardeinstellung Beim Angeben 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
Führen Sie eine AuxiliaryNodeGroup im Rahmen einer Dataproc API-cluster.create
-Anfrage aus.
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 eindeutig sein muss. 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 muss innerhalb des Clusters eindeutig sein. Verwenden Sie diese ID, um die Treibergruppe bei zukünftigen Vorgängen zu identifizieren, z. B. beim Anpassen der Größe der Knotengruppe. Wenn keine Angabe erfolgt, generiert Dataproc die Knotengruppen-ID.
Weitere 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" } ] }, }
Metadaten des Treiberknotengruppen-Clusters abrufen
Mit dem Befehl gcloud dataproc node-groups describe oder der Dataproc API können Sie Metadaten der Treiberknotengruppe 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
Sie können den Befehl gcloud dataproc node-groups Größenanpassung oder die Dataproc API verwenden, um Treiberknoten einer Clustertreiber-Knotengruppe 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 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 festzulegen und Jobtreiber nicht sofort zu beenden. 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: gcloud CLI NodeGroup
zum Hochskalieren:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=4
Beispiel: gcloud CLI NodeGroup
zum Herunterskalieren:
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." } }
Treiber-Knotengruppencluster löschen
Wenn Sie einen Dataproc-Cluster löschen, werden die mit dem Cluster verknüpften Knotengruppen gelöscht.
Job senden
Sie können den Befehl gcloud Dataproc Jobs Senden oder die Dataproc API verwenden, um einen Job an einen Cluster mit einer Treiber-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 Jobbefehl an.
- CLUSTER_NAME: Der Clustername.
- DRIVER_MEMORY: Menge des Jobtreiberarbeitsspeichers in MB, der zum Ausführen eines Jobs erforderlich ist (siehe Yarn-Speichersteuerungen).
- 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 für gcloud Dataproc Jobs Senden hinzu, die sich auf den Jobtyp beziehen.
- JOB_ARGS: Fügt nach
--
beliebige Argumente hinzu, die an den Job übergeben werden sollen.
Beispiele: Sie können die folgenden Beispiele über eine SSH-Terminalsitzung in einem Dataproc-Treiberknotengruppencluster 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 eindeutig sein muss. 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 Jobtreiberspeichers in MB, der zum Ausführen eines Jobs erforderlich ist (siehe Yarn-Speichersteuerungen).
- 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 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
Zum Aufrufen des Jobstatus und zum Beheben von Jobproblemen können Sie Treiberlogs über die gcloud CLI oder die Google Cloud Console aufrufen.
gcloud
Jobtreiberlogs werden während der Jobausführung an die 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 der 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 Cluster-Logs für Knotengruppen auf:
Sie können das folgende Abfrageformat für den Log-Explorer verwenden, um Logs zu 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>"
Ersetzen Sie Folgendes:- PROJECT_ID: Google Cloud-Projekt-ID.
- CLUSTER_NAME: Der Clustername.
- LOG_TYPE:
- Yarn-Nutzerprotokolle:
yarn-userlogs
- Logs des Yarn-Ressourcenmanagers:
hadoop-yarn-resourcemanager
- Logs des Yarn-Knotenmanagers:
hadoop-yarn-nodemanager
- Yarn-Nutzerprotokolle:
Messwerte überwachen
Jobtreiber der Dataproc-Knotengruppen werden in einer untergeordneten Warteschlange vom Typ dataproc-driverpool-driver-queue
unter einer Partition dataproc-driverpool
ausgeführt.
Messwerte für Treiberknotengruppen
In der folgenden Tabelle sind die zugehörigen Treibermesswerte für Knotengruppen aufgeführt, die standardmäßig für Treiberknotengruppen erfasst werden.
Messwert für Treiberknotengruppe | Beschreibung |
---|---|
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB |
Die Menge des verfügbaren Arbeitsspeichers in Mebibyte in dataproc-driverpool-driver-queue unter 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 Warteschlange aufgeführt. Die Messwerte werden standardmäßig für Treiberknotengruppen erfasst und können für die Erfassung in allen 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 in 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 unter allen 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 Option VM-Instanz → Benutzerdefiniert aus.
Fehlerbehebung für den Jobtreiber in der Knotengruppe
In diesem Abschnitt finden Sie Bedingungen und Fehler für Treiberknotengruppen sowie Empfehlungen zum Beheben der Bedingung oder des Fehlers.
Bedingungen
Bedingung:
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB
nähert sich0
. Dies weist darauf hin, dass die Warteschlange der Cluster-Treiberpools nicht mehr genügend Arbeitsspeicher hat.Empfehlung: Skalieren Sie die Größe des Treiberpools hoch.
Bedingung:
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers
ist größer als 0. Dies kann darauf hinweisen, dass die Warteschlange der Cluster-Treiberpools nicht mehr genügend Arbeitsspeicher hat und YARN Jobs in die Warteschlange stellt.Empfehlung: Skalieren Sie die Größe des Treiberpools 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
driver-required-memory-mb
auf die Arbeitsspeichernutzung des Jobs.