2014-09-22 12 views
8

Ich habe einen Mesos-Cluster und war mit einer Spark-Shell verbunden. Ich habe den Client heruntergefahren, aber Mesos glaubt immer noch, dass das Framework aktiv sein sollte.Kill ein Framework in Mesos

Ich versuche, von Mesos Drop den Rahmen, um mit curl (https://issues.apache.org/jira/browse/MESOS-1390) vom Server

aber ich erhalte keine Antwort mit DELETE. Auch ich bin nicht sicher, wie genau mit dem Master zu verbinden: Ich habe ein Multi-Master-Setup von ZooKeeper verwaltet, und ich hatte nur versucht, zu dem aktiven Master zu verbinden:

curl -X DELETE http://<active master url>:5050/framworks/<framework id> 

Kann jemand, wenn die oben überprüfen ist die richtige Anfrage? Ich benutze mesos-0.20.0.

Dank

Antwort

3

Auch wenn das JIRA Problem (in den Kommentaren) DELETE erwähnt es ist nicht, wie Rahmen Abschaltung durchgeführt wird. Sie müssen eine POST-Anfrage an den/shutdown-Endpunkt senden.

Beispiele: https://github.com/apache/mesos/blob/master/src/tests/teardown_tests.cpp

In Bezug auf, warum der Funke Rahmen der Client nach dem Herunterfahren nicht entfernt wird, vermute ich, es ist, weil Funken eine hohe Failover Timeout verwendet? Dennoch bin ich überrascht, dass die Benutzeroberfläche von Mesos es als aktiv statt inaktiv anzeigt.

+0

Ah, ich verstehe. Vielen Dank. – Aaron

+3

Beachten Sie, dass/shutdown wurde zugunsten von/teardown – Adam

18

Es gibt eine Option restfull Aufruf durch die URL veröffentlichen http://your_mesos:5050/master/shutdown Parameter

curl [email protected]/tmp/post.txt -X POST http://your_mesos:5050/master/shutdown 

/tmp/post.txt eine Datei mit dem Folge Inhalt ist frameworkId vorbei:

frameworkId=23423-23423-234234-234234 

ich weiß, ist spät aber für zukünftige Fragesteller

+9

veraltet ist noch einfacher ist 'curl -XPOST http: // your_mesos: 5050/master/shutdown -d 'frameworkId = your_framework_id'' – Jeff

+10

' shutdown 'hat nicht für mich funktioniert . Ich musste stattdessen "Teardown" verwenden. –

4

Riffing auf @montells Arbeit, ein One-Liner wäre

echo "frameworkId= 23423-23423-234234-234234" | curl [email protected] -X POST http://localhost:5050/master/shutdown 
+0

Wer weiß, wo die API dokumentiert ist? Ich habe es noch nicht gefunden. Bei Mesos 0.23+ ist/master/teardown der neue Pfad, da/master/shutdown veraltet ist. https: //issues.apache.org/jira/browse/MESOS-2697 – codecraig

+0

http api kann über dieses Ticket verfolgt werden: https://issues.apache.org/jira/browse/MESOS-2289 – codecraig

+0

Achten Sie darauf, ein Leerzeichen vor der ID zu haben. Der Platz hat mir in der Vergangenheit Probleme –

16

Nur um dies auf dem neuesten Stand zu halten: Der Master-Endpunkt wurde in Teardown umbenannt, d. H. http://localhost:5050/master/teardown ist der neue Weg zu gehen.

TEARDOWN Request (JSON):

POST /master/teardown HTTP/1.1 
Host: masterhost:5050 
Content-Type: application/json 
frameworkId=12220-3440-12532-2345 

TEARDOWN Antwort:

HTTP/1.1 200 Ok 
+0

verursacht, also sollte ich den vorgeschlagenen curl-Befehl schreiben als: curl [email protected]/tmp/post.txt -X POST http: // localhost: 5050/Master/Teardown? – CruncherBigData

+1

@CruncherBigData ja, ersetzen Sie einfach 'shutdown' durch' teardown'. Übrigens können Sie '-d 'frameworkId = #'' anstelle der Datei schreiben. – solomkinmv

+0

'curl -H" Inhaltstyp: application/json "-X POST -d 'frameworkId = 547d0f00-b084-4b5c-bd1b-5ea6c5f8abd1-0000' -v -L http: // localhost: 5050/teardown' (/ Master/Teardown und/Teardown sind das gleiche) – KarlKFI

3

Fügen Sie diese in Ihrem Bashrc:

#Mesos 
killtask(){ curl -XPOST http://mesos_url:5050/master/teardown -d 'frameworkId='[email protected]''; } ; 

Verwendungsbeispiel:

killtask 123 
+0

Bigups .. diese Antwort ist die beste – vicTROLLA

+0

Danke! Ich brauchte auch einen schnellen Weg um Frameworks zu töten :) –