2017-04-01 2 views
7

Ich habe einen Funken Job läuft auf YARN und es scheint nur zu hängen und keine Berechnungen zu tun.Wie kann ich feststellen, ob mein Funke-Job Fortschritte macht?

Hier ist, was Garn sagt, wenn ich yarn application -status <APPLICATIOM ID> tun:

Application Report : 
Application-Id : applicationID 
Application-Name : test app 
Application-Type : SPARK 
User : ec2-user 
Queue : default 
Start-Time : 1491005660004 
Finish-Time : 0 
Progress : 10% 
State : RUNNING 
Final-State : UNDEFINED 
Tracking-URL : http://<ip>:4040 
RPC Port : 0 
AM Host : <host ip> 
Aggregate Resource Allocation : 36343926 MB-seconds, 9818 vcore-seconds 
Log Aggregation Status : NOT_START 
Diagnostics : 

Und wenn ich die yarn application -list überprüfen sie sagt, dass es RUNNING ist. Aber ich bin mir nicht sicher, ob ich das vertraue. Als ich in die Funken WebUI gehen, sehe ich eine Stufe nur die ganze paar Stunden habe ich es läuft:

web UI

Auch, wenn ich auf der „Stages“ Registerkarte klicken, ich nichts Laufen sehen:

Stages tab

Wie wird sichergestellt, dass meine Anwendung tatsächlich ausgeführt wird und dass YARN liegt nicht an mir?

Ich würde eigentlich lieber dafür einen Fehler werfen, anstatt mich zu warten, um zu sehen, ob der Job wirklich läuft. Wie mache ich das?

Antwort

3

Auf der Funken Anwendung UI

Wenn Sie auf den Link klicken: „Parkett bei Nativexxxx“ es würde Sie zum Lauf Bühne zeigen.

Auf diesem Bildschirm würde eine Spalte "Input Size/Records" sein. Wenn Ihr Job fortschreitet, ändert sich die in dieser Spalte angezeigte Nummer.

Image shows what I am trying to say

Es zeigt im Grunde Anzahl der Datensätze von Ihrem Testamentsvollstrecker lesen.

+0

Hm. Ich sehe das nicht. Bedeutet das, dass es nicht voranschreitet? – Candic3

+0

Können wir das für ein bisschen plaudern? – Candic3

+1

http://chat.stackoverflow.com/rooms/139996/spark-job-progress – Candic3

1

Wenn Sie zu Spark UI gehen und nach "Executors" Registerkarte suchen. Dort haben Sie die Liste Executors, auf denen Ihr Job läuft und neben Executor ID und Adresse haben Sie "Logs" Spalte dort haben Sie "stdout" & "stderr" Tabs. Klicken Sie auf stdout und dort können Sie die Protokolle sehen, die auf Ihrem Container geschrieben wurden, wenn Ihr Job ausgeführt wird.

+0

aber nur weil die Protokolle geschrieben werden - bedeutet das notwendigerweise, dass der Job voranschreitet? Die Logs könnten etwas schreiben wie "Warten auf ausreichende Ressourcen" oder so, oder? – Candic3

+0

@ Candic3 Ja, Sie haben Recht. Aber das ist der beste Weg, um Ihre Logs zu verfolgen und Sie können auch alle Informationen zu YARN und seinen Ressourcen sehen. – BadBoy777

+0

@ Candic3 scheinen, als ob Sie nicht genügend Ressourcen in Ihrem Garn Cluster haben. – Kaushal

1

YARN sagt, dass es läuft, weil die Anwendung nicht beendet wurde oder getötet wurde. Es weiß nicht, ob es feststeckt. In Ihrem Fall können Sie Spark Job im Garn-Client-Modus ausführen und die Protokolle sehen, die vorschlagen sollten, ob es wirklich läuft.

Verwandte Themen