2

Ich verwende Heron für die Durchführung von Streaming-Analysen für IoT-Daten. Derzeit in der Architektur gibt es nur einen Auslauf mit Parallelitätsfaktor 1.Maximale Auslaufmenge

Ich versuche, die Statistiken auf die Menge der Daten, die Heron in der Warteschlange halten kann, die es intern am Auslauf verwendet, zu messen.

Ich spiele mit der Methode setMaxSpoutPending(), indem Sie Wert übergeben. Ich möchte wissen, ob es eine Grenze für die Anzahl gibt, die wir an diese Methode weitergeben.

Können wir die Parametermethode optimieren, indem wir die Systemkonfiguration erhöhen oder mehr Ressourcen für die Topologie bereitstellen?

+0

Sind Sie sicher, dass dies als Storm/Spark-Frage markiert werden sollte? Es scheint speziell um Heron. –

+0

@ StigRohdeDøssing Aber ich konnte das Heron-Tag nicht finden, während ich die Frage hinzufügte :( –

+0

Entschuldigung, ich denke du hast Recht und es scheint kein Heron-Tag zu sein. Ich war nur ein wenig verwirrt darüber, warum dies als getaggt wurde eine Storm-Frage :) –

Antwort

1

Wenn Sie also einen Ausguss und eine Schraube haben, ist der maximal auslaufende Auslauf der beste Weg, um die Anzahl der anstehenden Tupel zu kontrollieren. Der maximal auslaufende Auslauf kann unbegrenzt erhöht werden. Wenn sie jedoch über einen bestimmten Wert hinaus erhöht wird, erhöht sich die Wahrscheinlichkeit von Zeitüberschreitungsfehlern und im schlimmsten Fall kann kein Vorwärtsfortschritt auftreten. Auch höhere msp erfordern in der Regel mehr Halde, die für Ausguss und andere Komponenten der Topologie erforderlich sind.

+0

Ihre Antwort ist mehr über Klärung suchen als eine tatsächliche Antwort auf das Problem. Es wäre besser als Kommentar zu der Frage gemacht. – Nick

+0

@Sanjeev Ich erhalte codierte Daten (Temperatur) in der Tülle und übergebe sie an eine Schraube in der Topologie, um den gleitenden Durchschnitt der dekodierten Daten (Temperatur) zu berechnen. Ich mache ein Benchmarking mit den Daten, die der Auslauf im Flug bewältigen kann. Damit können wir die Ressourcenzuweisung an die Topologie anpassen und sehen, ob sich etwas ändert –

1

MSP wird verwendet, um die Topologie-Ingestionsrate zu steuern; Es teilt Storm die maximale Anzahl von Tupeln mit, die zu einem bestimmten Zeitpunkt nicht bestätigt werden können. Wenn der MSP niedriger als die Parallelität der Topologie ist, kann es ein Flaschenhals sein. Auf der anderen Seite kann eine Erhöhung von MSP über die Topologieparallelitätsebene hinaus dazu führen, dass die Topologie "geflutet" wird und nicht in der Lage ist, mit den eingehenden Tupeln Schritt zu halten. In einer solchen Situation wird das "Nachrichten-Timeout" der Topologie überschritten und Storm versucht, sie wiederzugeben, während immer noch neue Tupel zugeführt werden. Storm beendet die Eingabe neuer Eingangstupel erst, wenn das MSP-Limit erreicht ist.

Also ja, Sie können es optimieren, aber halten Sie Ausschau nach erhöhten zeitgesteuerten Tupeln, die anzeigen, dass Ihre Topologie überfordert ist.

BTW, wenn Sie IoT-Ereignisse verarbeiten, können Sie in der Lage sein, die Parallelität zu erhöhen, indem Sie die Spout-Tupel anhand der Geräte-ID (Tupel-Stream pro Gerät) gruppieren.