Fast Data mit dem SMACK Stack

In den letzten Jahren haben sich Big-Data-Lösungen enorm weiterentwickelt. Wo zu Beginn die Herausforderung nur in der Verarbeitung großer Datenmengen lag, liegt diese heute oftmals in der Geschwindigkeit bei der Bereitstellung aktueller Daten zur Analyse, beispielsweise das Einkaufsverhalten von Kunden der letzten Stunde.

Man versuchte, aktuelle Daten direkt in einem Stream zu verarbeiten, um diese schnellstmöglich verfügbar zu machen, sodass nicht immer auf die Batch-Auswertungen gewartet werden musste. In diesem Zusammenhang hat sich der Begriff von Fast Data in der Big Data Community etabliert. Fast Data ist ein Ansatz zur Lösung der Ansprüche an die „Velocity“, eine der 5 Vs von Big Data.

Problemstellungen der modernen Datenverarbeitung sind unter anderem:

  • Die Datenmenge sowie die Anzahl von deren Quellen steigt von Jahr zu Jahr.
  • Oftmal sind Geschäftsdaten vor einer Stunde schon zu veraltet und nicht mehr gebräuchlich.
  • Die Datenanalyse ist in vielen Fällen zu langsam geworden.
  • Wir leben in einer Zeit, in der die Aktualität der Daten oftmals mehr Wert ist als die Menge an Daten.

Wir von CI beschäftigen uns in unserem Big Data Team mit der Bewältigung solcher Herausforderungen in Ihrem Unternehmen. Um das Prinzip von Fast Data umzusetzen, bietet sich der sogenannte SMACK Stack an. Hierbei handelt es sich um einen Best-of-Breed Ansatz, der ein populärer Vertreter der Implementierung einer Streaming Architektur mit dem Einsatz von Open-Source-Technologien ist.

Einen detaillierten Bericht zu Streaming Architekturen hat mein Kollege Benedikt Schröter verfasst.

Zum Beitrag

Durch das Analysieren von Streams kann eine bessere Einsicht in die aktuellen Ereignisse erlangt werden und Schätzungen über zukünftige gemacht werden, um beispielsweise ein Out-of-Stock Szenario oder Ausfall von wichtigen Maschinen in der Produktion zu vermeiden.

SMACK ist ein Akronym aus den Technologien: Spark, Mesos, Akka, Cassandra und Kafka. SMACK bietet den Vorteil, dass auf die neusten Entwicklungen und Technologien bei der Verarbeitung von Big Data gesetzt wird und so die Verarbeitung deutlich beschleunigt werden kann.

Die Kombination der Tools besteht darin, die Stärken jeder Technologie zu nutzen, um sich optimal zu ergänzen. Im Folgenden ist der Stack veranschaulicht:

Spark - das S in SMACK 

Spark ist elementarer Bestandteil von SMACK. Ein Unternehmen, das Big Data effizient betreiben will, kommt nicht drum herum, sich mit Apache Spark auseinanderzusetzen.

Einige Argumente für Spark in diesem Anwendungsumfeld:

  • skalierbar, um auch mit Millionen von Datensätzen umgehen zu können
  • schnell genug, um Antworten in nahezu Echtzeit zu liefern
  • geeignet, um Analysen mit beliebiger Laufzeit umzusetzen
  • ein einheitliches, verständliches Programmiermodell für den Umgang mit verschiedenen Datenquellen

Akka - das A in SMACK 

Akka ist eine Implementierung des Actor Frameworks, basierend auf dem aus Erlang bekannten Aktoren Konzept und erlaubt das Schreiben von reaktiven Anwendungen, die hochverteilt sind. Im SMACK Kontext ist Akka für das Auf-/Entgegennehmen der Daten zuständig.

Mesos - das M in SMACK 

Oftmals wird in dem Zusammenhang das DC/OS (Distributed Cloud Operating System) von Mesosphere, aufbauend auf Apache Mesos, auf dem Cluster konfiguriert, welches das Managen des Clusters durch die hervorragende GUI enorm erleichtert.

Cassandra -  das C in SMACK 

Cassandra stellt die Datenbank zur Verfügung, mit der SMACK arbeiten kann.
Die Datenbank kann über Rechner verteilt werden und bietet eine hohe Leistung und Skalierbarkeit. Zudem ist auch die Ausfallsicherheit besonders hoch.

Kafka -  das K in SMACK  

Kafka wird oft als verteiltes Messaging-System angesehen, was es auch im engeren Sinne ist. Die einfache Struktur von Kafka erlaubt es, große Mengen an Daten zwischen mehreren Systemen zu transferieren und dabei linear zu skalieren.

Alternativen zu SMACK?

Der SMACK Stack, so wie er ist, ist nicht in Stein gemeißelt. Je nach Anforderungen können individuelle Komponenten ersetzt werden. Beispielsweise könnte auch Yarn oder Kubernetes anstatt Mesos verwendet werden, sowie auch Apache Flink zur (Batch- und) Streamverarbeitung eingesetzt werden.

Es gibt also einige Alternativen zu SMACK.

Fazit

Die Besonderheit von SMACK besteht darin, dass bewährte Open-Source-Technologien im Big-Data-Bereich zu einem Stack zusammengefügt werden können, sodass Unternehmen von hoher Leistung und sehr schnellem Datendurchsatz profitieren.

Der SMACK Stack kann on-premises sowie auch in der Cloud betrieben werden. Letzteres spart den Betrieb eigener Hardware und ermöglicht eine gute Skalierbarkeit.

Zusammengefasst handelt es sich also bei SMACK um eine Fast-Data-Lösung, um Herausforderungen der (Nahe) Echtzeit-Analyse zu bewältigen.

Für Unternehmen, die die nächste Stufe der modernen Datenverarbeitung erreichen wollen, lohnt es sich, ein Blick auf den SMACK Stack zu werfen.

Weiterführende Links:

  • Helena Edelson schrieb killrweather mit dem SMACK Stack und präsentierte das Projekt auf der PNWScala 2014. Helena ist eine Pionierin und nun führende Innovatorin des SMACK Stack.
  • SMACK ist eine eingetragene Marke von By the Bay, LLC. Sie benutzten das Akronym als erstes für kommerzielle Zwecke und nirgends zuvor.
  • Ein erstes End-To-End Data-Pipeline Training fand z.B beim Scala By the Bay and Big Data Scala