2016-07-31 12 views
6

Ich habe eine sehr lange Spark Job, von dem eine kleine Anzahl von Aufgaben derzeit blockiert sind. Gibt es eine Möglichkeit, diese blockierten Aufgaben vom Treiberknoten zu töten?Töten Sie eine einzige Funke Aufgabe

Aus Gründen der Berechtigung kann ich mich einloggen, aber die Jobs auf den Slave-Knoten nicht beenden, also suche ich nach einer Möglichkeit, dies nur vom Treiberknoten aus zu tun. Beachten Sie, dass ich nicht den gesamten Spark-Job abbrechen möchte - nur ein oder zwei blockierte Aufgaben.

Wenn es hilft, verwende ich Mesos und habe Zugriff auf Web-UI, aber das enthält nicht die Option zum Töten der Aufgabe.

Antwort

5

Nein, nicht wirklich.

Sie können eine einzelne Funke-Aufgabe nicht manuell löschen, jedoch können Sie mithilfe der Funkenspekulation automatisch feststellen, welche Aufgaben zu lange dauern, und sie proaktiv neu starten.

Wenn Sie das tun wollen, setzen Sie spark.speculation auf true und [wenn Sie es wagen] ändern Sie die spark.speculation.interval, spark.speculation.multiplier, spark.speculation.quantile Konfigurationsoptionen.

Verwandte Dokumente: http://spark.apache.org/docs/latest/configuration.html#viewing-spark-properties

Verwandte SO: How to deal with tasks running too long (comparing to others in job) in yarn-client?

+0

Die Spark UI scheint Ihnen zu erlauben, einzelne Aufgaben zu töten, und ich denke, sie neu planen und arbeiten, um das nächste Mal. Dies scheint darauf hinzuweisen, dass es eine API zum Töten von Aufgaben gibt. Es wäre wahrscheinlich eine Menge Handarbeit, um es zu benutzen. Ich leide unter dem gleichen Problem und Spekulationen verursachen derzeit andere Probleme, also debattiere ich es zu versuchen. –

+1

Spark UI können Sie Job-Phasen zu töten, aber ich bin mir nicht bewusst, irgendeine Funktionalität zum Abbruch einzelner Job-Aufgaben. Wo ist das Töten in der Benutzeroberfläche möglich? – Garren

+0

Sie sind richtig, ich entschuldige mich. Ich benutzte den falschen Begriff und dachte an die Bühnen. –

Verwandte Themen