0

Ich habe eine Topologie auf einem Storm-Cluster mit 3 Supervisor-Knoten (32GRAM pro Knoten) ausgeführt. In den ersten Tagen läuft die Topologie gut, alles ist in Ordnung. Aber der folgende Fehler aufgetreten ist immer und die Topologie nach einigen Tagen zurückgegangen läuft:Storm: Wie Topologie automatisch erneut übergeben, wenn es Ausnahme auftritt?

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException 
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /brokers/topics/TOPICNAME/partitions at storm.kafka.ZkCoordinator.refresh 

Die Topologie verwendet eine Ausguss-Nachrichten von einem Remote-Kafka-Dienst zu konsumieren, die auf einem Remote-Server sitzt und dieser Server ist auch der zookeeper Service auf.

Ich vermute, der Grund für diese Ausnahme ist, dass der Tierpfleger-Server Instabilität ist, ODER die Netzwerkverbindung instabil ist.

Ich habe keine Erlaubnis, etwas mit dem Remote-Kafka-/zoekeeper-Server zu tun. Daher brauche ich eine Lösung, um die Topologie stabil laufen zu lassen. Gibt es trotzdem eine Möglichkeit, die Topologie OR stabil laufen zu lassen, um die Ausnahme zu überspringen, während sie herauskommt? Oder gibt es trotzdem eine Topologie automatisch erneut zu übermitteln?

Vielen Dank!

Antwort

0

Das erste, was Sie getan haben sollten, ist googeln für what causes the connection loss error.
Dann gehen Sie zu Sturm Log-Dateien und sehen Sie, welche Zeile des Codes den Fehler verursacht.
Der richtige Weg, um Dinge zu tun, ist herauszufinden, was den Fehler verursacht.

Wenn Sie jedoch eine schnellere temporäre Lösung wünschen, verwenden Sie Storm's REST API, um die Topologie zu beenden. Dann können Sie ein normales Java-Programm oder ein Skript in einer beliebigen Sprache verwenden, um die Topologie von der Befehlszeile aus neu zu starten.

Verwandte Themen