Ich habe eine Storm-Topologie implementiert, die JSON-Daten von einem Kafka-Tubus aufnimmt, über zwei Schrauben verarbeitet und dann eine Nachricht an hdfs mit dem hdfs- Bolzen. Mit Storm 0.9.6 mit Kafka 0.8.2.1 und Hadoop 2.5.0 funktionierte das perfekt. Das Produktivsystem, für das ich dies implementiert habe, aktualisiert die Tools auf Storm 1.0.2, Kakfa 0.10.1.0 und Hadoop 2.6.0. Als ich die Paketinformationen für die oben genannten Versionen aktualisiert habe, beginnt die hdfs-Schraube jetzt damit, "Geister" -Tupel anzustecken, bevor ich überhaupt irgendwelche Daten durch die Tülle gesendet habe. Es zeigt weiterhin Acks in der Benutzeroberfläche an, bis die Topologie beendet wird. Außerdem werden die Nachrichten nur manchmal in hdfs geschrieben, wenn ich Daten tatsächlich verarbeite. Meistens wird nichts ausgegeben. Irgendwelche Ideen, welche Unterschiede in den Versionen ein solches Problem verursachen würden?Storm 1.0.2 hdfs-bolt acking Tupel, wenn keine Daten an es gesendet werden
Antwort
Nicht sicher, aber es ist wahrscheinlich, dass Sie vor Tick-Tupel stehen, die auf Ihre Schrauben emittiert werden. Versuchen Sie folgende Bedingung in der Ausführungslogik hinzuzufügen, dies zu umgehen:
public void execute(Tuple tuple, BasicOutputCollector oc){
if (!TupleUtils.isTick(tuple))
{
//Your code
}
}
Danke für die Antwort. Das werde ich später später versuchen. Die seltsame Sache ist, dass es nur der hdfs Bolzen und keiner der anderen Bolzen ist. Außerdem entdeckte ich, dass die Verarbeitung einer großen Anzahl von Tupeln die vollständige Verarbeitung der Tupel erzwingt und dass Datensätze in hdfs geschrieben werden. Das Senden von Testdateien mit ca. 7-20 Datensätzen funktioniert nicht. Ich habe es eingestellt, um das UI zu aktualisieren und nach jedem Tupel in hdfs zu schreiben. Irgendwelche Einblicke zu diesem Thema? – kwa
- 1. Welche Daten werden an Google Analytics gesendet?
- 2. Welche Daten werden an PayPal gesendet? Cancel_return
- 3. Apache Storm Bolt Aufgabe erhält nach einiger Zeit keine Nachricht
- 4. Storm UI zeigt keine Topologie an
- 5. Java - Dateien werden beschädigt, wenn sie über Socket gesendet werden, außer wenn an localhost gesendet
- 6. Storm: eine Schraube emittiert ein Tupel und empfängt von selbst?
- 7. Es konnte kein JSON-Objekt an XMLHttpRequest gesendet werden
- 8. Cucumber + EmailSpec + Rails3: Warum heißt es, dass keine E-Mails gesendet werden, wenn es tatsächlich funktioniert?
- 9. Prozessdaten, die an stdout gesendet werden
- 10. Storm Kafka Tülle, die keine Meldungen ausgibt
- 11. GCDAsyncUDPSocket: Keine Daten empfangen, obwohl es erfolgreich gesendet wurde
- 12. Wenn jQuery AJAX-Daten gesendet/empfangen werden, ist es möglich, nur EINIGE der Daten zu empfangen?
- 13. NodeJS werden keine Daten an jQuery.getJSON zurückkehren
- 14. Log4Net und Application Insights - keine Daten werden gesendet
- 15. Wie werden Daten per URL an eine Datenbank gesendet?
- 16. Meine Daten werden nicht per PHP an die Datenbank gesendet
- 17. Gibt es ein Injektionsrisiko, wenn keine Benutzereingabe an die Datenbank gesendet wurde?
- 18. Byte-Daten von Android App können nicht an Python-Server gesendet werden, wenn Sockets verwendet werden.
- 19. JSON-Daten werden als null empfangen, wenn sie an den MVC-Controller gesendet werden
- 20. Socket.IO und Node.js: Daten werden nicht an Server gesendet
- 21. JSON-Objekt wird geändert, wenn es an Knotenserver gesendet wird
- 22. Daten werden nicht in Angularjs an WebApi gesendet
- 23. Dropdown-Daten werden nicht an $ _POST gesendet. Php
- 24. Wie Acking im Sturm mit mehreren Schrauben aus demselben Auslauf
- 25. Mongoose: Modell speichert keine Daten an es
- 26. Android - Daten werden nicht an PHP Script gesendet
- 27. JSON-Daten kann nicht an API gesendet werden
- 28. Wie Daten von externem Dienst an OTRS gesendet werden
- 29. Unsymmetrische Daten in Storm empfangen
- 30. Wie wird Storm Trident für Batch-Tupel verwendet?
Freigabecode/Code-Schnipsel Ihrer Implementierung in dem Verständnis Problem besser für die Bereitstellung von wertvollen Informationen zu helfen und für andere zu lernen. – vmorusu