Java Magazin 07/16

Streaming-Apps mit Kafka, Spark und Cassandra

Autor:

Im Artikel von Jochen Mader wurde die Ingestion von Daten in ein Kafka-Cluster beschrieben. Nun sollen diese Events natürlich verarbeitet und gespeichert werden. Möglicherweise sollen dabei auch die Vorgänge eines Events berücksichtigt oder ein interner Zustand aktualisiert werden. Außerdem ist es denkbar, die Daten des Streams mit weiteren Informationsquellen zusammenzuführen. All dies ist mit Spark und Cassandra möglich.

Die Entwicklung von Apache Spark hatte zunächst den Fokus, eine Alternative zu MapReduce im Hadoop-Ökosystem anzubieten. Während es auch heute noch sehr häufig im Hadoop-Umfeld eingesetzt wird und in allen großen Hadoop-Distributionen enthalten ist, hat sich das Projekt stetig weiterentwickelt. Ebenso ist die Anzahl der Konnektoren zur Integration mit anderen Tools gewachsen. Spark ist für den Einsatz in verteilten Umgebungen vorgesehen und setzt auf ein – im Vergleich zu MapReduce – einfaches und flexibles Programmiermodell mit einem intuitiven, ausdrucksstarken API. Außerdem verbessert es die Performance für komplexe Jobs, indem große Teile der Berechnung im Speicher durchgeführt werden. Spark ist vollständig in Scala implementiert und bietet neben einem Scala-API auch Java-, Python-, SQL- und R-Schnittstellen

Vollständiger Artikel