2016-08-02 15 views
0

Ich habe ein Problem, wo in Funken Streaming-i nur über die letzte 1 Minute besorgt bin, damit ich meinen Code entsprechendSpark-Streaming-Job-Scheduling die Ausführung steuern?

Nun irgendwann aufgrund verschiedener Ressource geschrieben habe meine geplanten batched dieser wurde aufgestapelt wie

INFO JobScheduler: Added jobs for time 1470046240000 ms 
    INFO JobScheduler: Added jobs for time 1470046241000 ms 
    INFO JobScheduler: Added jobs for time 1470046242000 ms 
    INFO JobScheduler: Added jobs for time 1470046243000 ms 

Meine Frage ist, wie kann ich die Zeitplan-Jobs ablegen, wenn die Zeit 1 Minute überschreitet , so dass sie vor der Ausführung verworfen werden können

+0

Es sieht so aus, als hätten Sie 'Batchintervall' angegeben, da '1 Sek.' Auf '60 Sek.' Erhöht wird und Sie sehen, dass es Ihr Problem löst! Denken Sie daran, Ihre "Verarbeitungszeit" sollte immer kleiner als "Batch-Intervall" sein. – avr

+0

Ich habe bereits getan, dass seine 50 sec Problem ist irgendwann gibt es mehr Durchsatz für eine Minute, so mehr Verarbeitung für die Zeit Jobs häufen sich, weil es verarbeitet werden muss, aber wenn ich diese Jobs irgendwie wieder fallen lassen kann, wird es sich richtig verhalten – vipin

+0

Ich kann Batch-Intervall als '1 Sek.' (1000ms) von den oben angegebenen Logs sehen. Es ist jedoch IMO besser, das "Batch-Intervall" entsprechend anzupassen, anstatt die Chargen fallen zu lassen. – avr

Antwort

0

Um Chargen zu überspringen, die große Eingangsdaten haben, dann Schwellenwert festlegen und wenn Ihre RDD-Eingabe größer ist als Schwelle dann nur tun nichts anderes macht alle Operationen (wie Transformationen, Aktionen), die Sie wollen.

Ich verwende diesen Ansatz für das Überspringen leerer Chargen.