Springs Lösung für Extreme Data

Springs Lösung für Extreme Data

Eberhard Wolff


Meistens denkt man bei „Big Data“ an die Speicherung großer Datenmengen. Aber die Daten müssen auch verarbeitet werden. Schließlich gehen Daten mit Datenströmen einher – für den Import oder den Export in oder aus Big-Data-Speichern. Dabei können auch schon die ersten Verarbeitungsschritte stattfinden – beispielsweise das Zählen, Aufsummieren oder Verdichten der Werte. Eine Verarbeitung der Daten als Batch ist genauso denkbar wie die Onlineverarbeitung. Für solche Szenarien existieren schon die Frameworks Spring Batch und Spring Integration. Sie sind jedoch nicht miteinander integriert. Spring XD stellt eine solche Integration bereit und ergänzt sie um eine Ablaufumgebung ähnlich einem Application Server. Grundsätzlich verwendet Spring XD dazu folgende Elemente:

Jobs sind Batch-Verarbeitungen. Sie können mit Spring Batch als klassische Batches umgesetzt werden, wie sie von Großrechnern her bekannt sind. Eine Alternative ist die Implementierung als MapReduce-Job mithilfe von Spring for Apache Hadoop. Beiden Ansätzen ist gemeinsam, dass sie eine große Datenmenge von irgendwoher einlesen und dann verarbeiten. Jobs sind im aktuellen Stand des Codes noch nicht enthalten. Sie werden aber definitiv ein Teil von Spring XD werden.Bei Streams werden im Gegensatz zu Jobs nicht alle Daten auf einmal übertragen. Stattdessen wird jeder einzelne Datensatz übertragen und verarbeitet. Streams transportieren Daten von einer Source zu einem Sink. Mögliche Sources sind HTTP, ein Tail auf eine Datei, eine Suche bei Twitter, eine Continuous Query im Gemfire Cache von Pivotal, Syslog Events oder Werte, die über TCP eingehen. Liegen in den Sources neue Werte vor, werden sie direkt an die Sinks geschickt. Sinks können ein Log über ein Logging-Framework, eine Datei im Dateisystem des Computers, eine Datei im Hadoop-Dateisystem HDFS, ein TCP-Port oder der GemFire-Server sein.Außerdem gibt es Taps, mit denen die Verbindung zwischen einer Source und einem Sink „abgehört“ werden können. Neben der eigentlichen Verarbeitung können so noch weitere Verarbeitungen angestoßen werden.

Die Streams werden bereits im ersten Meilenstein [2], [3] unterstützt. Der Umgang mit dem Server gestaltet sich recht einfach. Streams können mit einer DSL beschrieben werden, die an UNIX-Pipes erinnert. So verbindet http | file die Source HTTP mit dem Sink File. Es können auch Optionen angegeben werden, beispielsweise http --port=9020 | file --name=eineDatei.txt --dir=/tmp.

Als Schnittstelle bietet Spring XD ein...

Springs Lösung für Extreme Data

Springs Lösung für Extreme Data

Eberhard Wolff


Meistens denkt man bei „Big Data“ an die Speicherung großer Datenmengen. Aber die Daten müssen auch verarbeitet werden. Schließlich gehen Daten mit Datenströmen einher – für den Import oder den Export in oder aus Big-Data-Speichern. Dabei können auch schon die ersten Verarbeitungsschritte stattfinden – beispielsweise das Zählen, Aufsummieren oder Verdichten der Werte. Eine Verarbeitung der Daten als Batch ist genauso denkbar wie die Onlineverarbeitung. Für solche Szenarien existieren schon die Frameworks Spring Batch und Spring Integration. Sie sind jedoch nicht miteinander integriert. Spring XD stellt eine solche Integration bereit und ergänzt sie um eine Ablaufumgebung ähnlich einem Application Server. Grundsätzlich verwendet Spring XD dazu folgende Elemente:

Jobs sind Batch-Verarbeitungen. Sie können mit Spring Batch als klassische Batches umgesetzt werden, wie sie von Großrechnern her bekannt sind. Eine Alternative ist die Implementierung als MapReduce-Job mithilfe von Spring for Apache Hadoop. Beiden Ansätzen ist gemeinsam, dass sie eine große Datenmenge von irgendwoher einlesen und dann verarbeiten. Jobs sind im aktuellen Stand des Codes noch nicht enthalten. Sie werden aber definitiv ein Teil von Spring XD werden.Bei Streams werden im Gegensatz zu Jobs nicht alle Daten auf einmal übertragen. Stattdessen wird jeder einzelne Datensatz übertragen und verarbeitet. Streams transportieren Daten von einer Source zu einem Sink. Mögliche Sources sind HTTP, ein Tail auf eine Datei, eine Suche bei Twitter, eine Continuous Query im Gemfire Cache von Pivotal, Syslog Events oder Werte, die über TCP eingehen. Liegen in den Sources neue Werte vor, werden sie direkt an die Sinks geschickt. Sinks können ein Log über ein Logging-Framework, eine Datei im Dateisystem des Computers, eine Datei im Hadoop-Dateisystem HDFS, ein TCP-Port oder der GemFire-Server sein.Außerdem gibt es Taps, mit denen die Verbindung zwischen einer Source und einem Sink „abgehört“ werden können. Neben der eigentlichen Verarbeitung können so noch weitere Verarbeitungen angestoßen werden.

Die Streams werden bereits im ersten Meilenstein [2], [3] unterstützt. Der Umgang mit dem Server gestaltet sich recht einfach. Streams können mit einer DSL beschrieben werden, die an UNIX-Pipes erinnert. So verbindet http | file die Source HTTP mit dem Sink File. Es können auch Optionen angegeben werden, beispielsweise http --port=9020 | file --name=eineDatei.txt --dir=/tmp.

Als Schnittstelle bietet Spring XD ein...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang