2016-06-02 11 views
0

Ich sehe einige gescheitert Chargen in meinem Funken Anwendung Streaming wegen Speichern verwandten Themen wieFunken Streaming fehlgeschlagen Chargen

kann nicht geteilt, Block Input-0-1464774108087 nicht gefunden

, berechnen und Ich habe mich gefragt, ob es eine Möglichkeit gibt, diese Chargen auf der Seite zu verarbeiten, ohne mit der aktuell laufenden Anwendung zu tun zu haben, im Allgemeinen muss es nicht die gleiche genaue Ausnahme sein.

Vielen Dank im Voraus Pradeep

+0

Haben Sie sie nicht bereits während der Ausführung neu aufbereitet? überprüfst du die Protokolle dafür? – Vale

+0

Wenn ich die Spark UI sehe, sehe ich unter Streaming einige aktive Stapel, und wenn ich auf einige von ihnen klicke, sehe ich die obige Ausnahme, das bedeutet, dass diese Stapel bei der Verarbeitung in der Streaming-Anwendung aussortiert wurden diejenigen, mit denen ich umgehen möchte, und bereinigen, und keine Daten wegen Ausnahmen verlieren. Hoffe es hilft. – Bill

+0

Steht Ihr Streaming-Job hinterher? Wie ist Ihre "Terminplanung" und "aktive Aufgaben"? – maasg

Antwort

0

Dies in Fällen passieren kann, wenn Rate Ihre Daten Einnahme in Funken höher als zugewiesenen Speicher oder gehalten werden kann. Sie können versuchen, StorageLevel zu MEMORY_AND_DISK_SER zu ändern, damit Spark, wenn es zu wenig Speicher ist, Daten auf Datenträger verschütten kann. Dies wird Ihren Fehler verhindern.

Außerdem glaube ich nicht, dass dieser Fehler bedeutet, dass Daten während der Verarbeitung verloren gegangen sind, aber der von Ihrem Block-Manager hinzugefügte Eingabeblock gerade abgelaufen ist, bevor die Verarbeitung gestartet wurde.

Ähnliche Fragen finden Sie auf Spark User list.

Edit:

Daten nicht verloren, es war einfach nicht vorstellen, wo die Aufgabe wurde erwartet, dass es zu sein. Wie pro Spark docs:

können Sie ein RDD markieren die bestehen bleiben() oder Cache() Methoden darauf beibehalten werden verwendet. Bei der ersten Berechnung in einer Aktion wird im Speicher der Knoten gespeichert. Sparks Cache ist fehlertolerant. Wenn eine Partition einer RDD verloren geht, wird sie automatisch neu berechnet, indem die Transformationen verwendet werden, die sie ursprünglich erstellt haben.

+0

Dank Amit, wahr, ich tat das und jetzt sehe ich keine Ausnahmen wie oben , aber für das, was Sie sagen "Ich glaube auch nicht, dass dieser Fehler bedeutet, dass alle Daten während der Verarbeitung verloren gegangen sind, aber dieser Eingabeblock, der von Ihrem Blockmanager hinzugefügt wurde, hat gerade vor Beginn der Verarbeitung abgelaufen." gab es diese Ausnahme oben und wurde der Block überhaupt nicht verarbeitet, richtig? .Die Daten wurden nicht durch Streaming verloren, es kam in Spark, und wurde nicht von Spark verarbeitet, daher verloren? – Bill

+0

Ich habe meine Antwort bearbeitet. –

+0

Danke Amit, also, was Sie sagen, ist, obwohl der Block wegen der Ausnahme nicht berechnet wurde, wird der Block auf die ursprüngliche Weise neu berechnet und wieder an die Executoren für die Verarbeitung zugeführt? – Bill

Verwandte Themen