EVALUATION
STREAMING
FRAMEWORKS
Apache Storm vs. Apache Spark Streaming
Vorstellung Apache Storm
Apache Storm
• Von Backtype entwickelt, von Twitter übernommen, nun
als Apache Projekt
• Definiert ein Netzwerk von Spouts (Streaming Quellen)
und Bolts (Processing – Einheiten), die frei in Topologies
kombinierbar und verkettbar sind.
• Basiert auf Zookeeper, mit einem JobTracker (Nimbus)
zur koordination und für fail over mediation.
• Alternativ werden Resourcen über YARN in einer
existierenden Hadoop Umgebung integriert
• Stream – Verarbeitung ist „garantiert“
• Spouts (Quellen) sind typischerweise Queue – Systeme,
für Kafka gibt es ein Implementierung
Use Case Evaluierung Storm
• ADP Event aus HDFS einlesen und in Kafka einspielen
• Storm-Kafka an topic subscriben und jeweils
• Eine (klassische) Storm Topology die Events verarbeiten lassen und
• Eine Trident Topology die Events verarbeiten lassen
• Aufbau eines Cluster in AWS mit
• Einem Master mit UI und Nimbus, sowie drei Worker
• Zwei Worker Nodes mit jeweils drei Worker
440 Mio. Events aus HDFS in Storm eingespielt.
Throughput bei 5600 events / sek (Limit bei Kafka Server / 100
Mbit/s interface)
Abschuss von einer Node im laufenden Betrieb ohne
Auswirkung auf die Verarbeitung, da dynamisches Rerouting
Vorstellung Streaming – Spark Streaming
Spark Streaming ist eine API aus der Spark Framework Familie und
wird von Databrix entwickelt.
• Anders als Storm oder Samza arbeitet Spark mit dem Konzept von
RDDs (resilient distributed data sets), gekapselte, ausführbare
collections von Datensätzen, die parallelisierbar sind.
• Bei RDDs wird grundsätzlich zwischen Transformationen (ähnlich wie
map bei MR) und Aktionen (reduce bei MR) unterschieden.
• Die Daten und Ihre Ausführung bilden dabei eine Einheit, die
segmentiert wird und parallel ausgeführt wird. Die Ausführung ist
grundsätzlich lazy, d.h. die Transformation wird erst dann ausgeführt,
wenn dessen Ausgabe von einer folgenden Aktion benötigt wird.
• Das ermöglich die dynamische Allokation von Ressourcen durch den
Resource Manager, typischerweise YARN oder Mesos.
• Spark Streaming ist eine Erweiterung von Spark, die es erlaubt
Streams an RDDs anzudocken. Unter anderem wird hier Kafka
unterstützt.
Use Case Evaluierung Spark Streaming
• ADP Event aus HDFS einlesen und in Kafka einspielen
• Setup einer Application, so wie bei Storm auch, die User-
Agents zählt
• Aufbau eines Cluster in AWS mit
• Einem Master mit einem Worker
• Zwei Worker Nodes mit jeweils einem Worker
• Läuft nur mit Kafka 0.8!
440 Mio. Events aus HDFS in Spark einspielen.
Throughput messen
Abschuss von einer Node im laufenden Betrieb
evaluieren
Pros and Cons Spark Streaming
• Für Spark Streaming spricht:
• Umfangreiche API mit vielen Funktionen
• Teil der Spark Plattform, für Data Science sehr relevant (z.B.
MLLib)
• Integration in Hadoop und Akka (Bei CDH5 in der Distribution
enthalten)
• Dagegen spricht:
• Die Java API ist absolut furchtbar, sinnvoll nur mit Scala einsetzbar
• Läuft nur mit Kafka 0.8
• Verarbeitung nicht garantiert, Kafka messages werden bei failures
nicht zurückgespult.
Pros and Cons - Storm
• Für Storm spricht:
• Extrem robust und erprobt
• Einfache Clusterverwaltung
• Einfache API
• Low - level Kafka Anbindung
• Only Once - Garantie mit Trident
• Dagegen spricht:
• Nicht integriert in Hadoop – Infrastruktur

Eval Apache Storm vs. Spark Streaming - German

  • 1.
  • 2.
    Vorstellung Apache Storm ApacheStorm • Von Backtype entwickelt, von Twitter übernommen, nun als Apache Projekt • Definiert ein Netzwerk von Spouts (Streaming Quellen) und Bolts (Processing – Einheiten), die frei in Topologies kombinierbar und verkettbar sind. • Basiert auf Zookeeper, mit einem JobTracker (Nimbus) zur koordination und für fail over mediation. • Alternativ werden Resourcen über YARN in einer existierenden Hadoop Umgebung integriert • Stream – Verarbeitung ist „garantiert“ • Spouts (Quellen) sind typischerweise Queue – Systeme, für Kafka gibt es ein Implementierung
  • 3.
    Use Case EvaluierungStorm • ADP Event aus HDFS einlesen und in Kafka einspielen • Storm-Kafka an topic subscriben und jeweils • Eine (klassische) Storm Topology die Events verarbeiten lassen und • Eine Trident Topology die Events verarbeiten lassen • Aufbau eines Cluster in AWS mit • Einem Master mit UI und Nimbus, sowie drei Worker • Zwei Worker Nodes mit jeweils drei Worker 440 Mio. Events aus HDFS in Storm eingespielt. Throughput bei 5600 events / sek (Limit bei Kafka Server / 100 Mbit/s interface) Abschuss von einer Node im laufenden Betrieb ohne Auswirkung auf die Verarbeitung, da dynamisches Rerouting
  • 4.
    Vorstellung Streaming –Spark Streaming Spark Streaming ist eine API aus der Spark Framework Familie und wird von Databrix entwickelt. • Anders als Storm oder Samza arbeitet Spark mit dem Konzept von RDDs (resilient distributed data sets), gekapselte, ausführbare collections von Datensätzen, die parallelisierbar sind. • Bei RDDs wird grundsätzlich zwischen Transformationen (ähnlich wie map bei MR) und Aktionen (reduce bei MR) unterschieden. • Die Daten und Ihre Ausführung bilden dabei eine Einheit, die segmentiert wird und parallel ausgeführt wird. Die Ausführung ist grundsätzlich lazy, d.h. die Transformation wird erst dann ausgeführt, wenn dessen Ausgabe von einer folgenden Aktion benötigt wird. • Das ermöglich die dynamische Allokation von Ressourcen durch den Resource Manager, typischerweise YARN oder Mesos. • Spark Streaming ist eine Erweiterung von Spark, die es erlaubt Streams an RDDs anzudocken. Unter anderem wird hier Kafka unterstützt.
  • 5.
    Use Case EvaluierungSpark Streaming • ADP Event aus HDFS einlesen und in Kafka einspielen • Setup einer Application, so wie bei Storm auch, die User- Agents zählt • Aufbau eines Cluster in AWS mit • Einem Master mit einem Worker • Zwei Worker Nodes mit jeweils einem Worker • Läuft nur mit Kafka 0.8! 440 Mio. Events aus HDFS in Spark einspielen. Throughput messen Abschuss von einer Node im laufenden Betrieb evaluieren
  • 6.
    Pros and ConsSpark Streaming • Für Spark Streaming spricht: • Umfangreiche API mit vielen Funktionen • Teil der Spark Plattform, für Data Science sehr relevant (z.B. MLLib) • Integration in Hadoop und Akka (Bei CDH5 in der Distribution enthalten) • Dagegen spricht: • Die Java API ist absolut furchtbar, sinnvoll nur mit Scala einsetzbar • Läuft nur mit Kafka 0.8 • Verarbeitung nicht garantiert, Kafka messages werden bei failures nicht zurückgespult.
  • 7.
    Pros and Cons- Storm • Für Storm spricht: • Extrem robust und erprobt • Einfache Clusterverwaltung • Einfache API • Low - level Kafka Anbindung • Only Once - Garantie mit Trident • Dagegen spricht: • Nicht integriert in Hadoop – Infrastruktur