2017-10-01 2 views
1

Ich habe eine Spark-Streaming-Anwendung, die einige Nachrichten von Kafka überwacht. Für eine bestimmte Nachricht muss ich möglicherweise zu einer langen Schleife gehen, um mit dem Pingen einiger IPs fortzufahren, bis sie wieder verbunden sind. Was ich sehen kann, wenn ein Executor zu dieser Schleife geht, hört es auf, den Stream zu verarbeiten. Ist es richtig? Wie kann ich diese Schleife erstellen, ohne die kontinuierliche Verarbeitung des Streams zu unterbrechen?Kafka Streaming-Treiber wartet auf die Ausführung der Executoren?

Antwort

0

Ja, die Executoren werden nicht fortfahren, wenn sie bei einer lang andauernden Aufgabe blockiert werden.

Ich würde davon abraten, solche langen Prozess auf einem Executor zu laufen. Unter der Annahme, dass diese Wiederverbindungsfälle nur spärlich sind, würde ich einen asynchronen Prozess im Treiber verwenden. (Futures oder Barebone-Fäden aus einem Pool).

Verwandte Themen