0

Wir verwenden Google Cloud Dataproc, um sparkJobs auszuführen. Wir haben eine Anforderung, um eine Liste aller Jobs und deren Status zu erhalten, die einem Cluster entsprechen.Dataproc Client: googleapiclient: Methode, um eine Liste aller Jobs (runnng, stopped usw.) in einem Cluster zu erhalten

Ich kann den Status eines Auftrags bekommen, wenn ich die job_id wissen, wie unten

res = dpclient.dataproc.projects().regions().jobs().get(
      projectId=project, 
      region=region, 
      jobId="ab4f5d05-e890-4ff5-96ef-017df2b5c0bc").execute() 

Aber was, wenn ich weiß nicht, die job_id, und wollen den Status aller Jobs

wissen

Antwort

0

Um Arbeitsplätze in einer Cluster-Liste können Sie die list() Methode verwenden:

clusterName = 'cluster-1' 
res = dpclient.dataproc.projects().regions().jobs().list(
     projectId=project, 
     region=region, 
     clusterName=clusterName).execute() 

beachten Sie jedoch, dass dies derzeit Auflistung unterstützt nur von Clustern, die noch vorhanden sind; Auch wenn Sie eine clusterName übergeben, wird dies zu einem eindeutigen cluster_uuid unter der Haube aufgelöst; Dies bedeutet auch, dass wenn Sie mehrere Cluster mit demselben Namen erstellen, jede Inkarnation immer noch als ein anderer Cluster betrachtet wird. Daher wird die Jobauflistung nur für die aktuell ausgeführte Version von ClusterName ausgeführt. Dies ist beabsichtigt, da clusterName häufig von Benutzern für verschiedene Zwecke wiederverwendet wird (insbesondere wenn die in cloud.google.com/console erstellten standardmäßigen Namen verwendet werden). Logischerweise sind die Aufträge, die an verschiedene tatsächliche Clusterinstanzen gesendet werden, möglicherweise nicht miteinander verknüpft andere.

In Zukunft wird es mehr Filteroptionen für Joblisten geben.