Anlässlich des Besuchs von Luc Bourlier von Lightbend fand am letzten März dieses Jahres ein besonderes Meetup statt. Die Scala User Group Vienna sowie die Spark Vienna User Group luden zum gemeinsamen Meetup in den Stockwerk Coworking Space ein. Luc hat zwei Vorträge zum Thema – wie könnte es anders sein – Apache Spark vorbereitet.

Nachdem der Begriff BigData und die bekannte BigData Plattform Apache Hadoop vorgestellt wurden ging es um die wichtigsten Prinzipien bei der Verarbeitung von sehr großen Datenmengen.

Apache Spark ist ein Werkzeug um sehr große Datenmengen schnell und einfach verarbeiten zu können. Dabei kommen moderne, funktionale Aspekte aus der Softwareentwicklung zum Einsatz. Luc hielt sich nicht lange mit Theorie auf sondern zeigte interaktiv viele kleine Beispiele, die die Funktionsweise von Apache Spark zur Datentransformation und -auswertung demonstrierten.

In einer Shell kann der Apache Spark Benutzer einfach Datenquellen öffnen und sofort mit Abfragen beginnen. Damit spricht Apache Spark neben Softwareentwicklern auch “Data Scientists” an, die komplexe Berechnungen und Auswertungen auf große Datenmengen anwenden wollen.

Die wichtigsten Begriffe in der Apache Spark Welt wie:

  • RDD’s
  • DataFrames sowie
  • Datasets

wurden sehr gut erklärt.

Luc vermittelte, dass die Organisation der Daten gut überlegt sein muss bevor man mit wirklich großen Datenmengen zu arbeiten beginnt. Die Aufteilung der Daten auf mehrere Knoten in einem Datencluster muss ebenso geplant werden wie die Art der Datenquelle (wie z.B. Filesysteme, Cassandra Datenbanken, SQL Datenbanken und andere).

Die funktionale Formulierung von Abfragen bietet sehr viele Möglichkeiten. Softwareentwickler, die Scala beherrschen, werden sich sofort wohlfühlen, denn die Abfragen werden als Scala Ausdrücke formuliert. Kennt man die Grundlagen von Scala Collections mit den funktionalen Aspekten wie map, flatMap und grouping kann man sofort mit der Verarbeitung beginnen.

Mit DataFrames und Datasets können Daten sehr leicht strukturiert und entsprechend einfach abgefragt werden. In der dazu gehörigen Demo wurde eine große JSON Datei eingelesen und viele Abfragemöglichkeiten gezeigt.

Im zweiten Vortragsteil ging es um Streaming Data! Dabei werden Datenströme einer Prozesspipeline zugeführt. So können Daten verarbeitet werden die z.B. gar nicht im Filesystem abgelegt werden (können), sondern direkt über Netzwerkverbindungen übermittelt werden.

Kommen Daten zu schnell von einer Quelle kann mittels Back Pressure verhindert werden, dass Daten “verloren” gehen. Damit kann auch mit extrem schnell eintreffenden Daten ein stabiles System aufgebaut werden.

Anwendungsbeispiele für Apache Spark sind

  • Logfile Verarbeitung
  • Auswertung von Social Media Datenströme
  • Machine Learning!
  • Transformation von sehr großen Datenmengen

An dieser Stelle wollen wir uns bei den Organisatoren des Meetups bedanken und freuen uns als Sponsoring Partner der Scala User Group Vienna am Erfolg dieser Veranstaltungen teilhaben zu dürfen. Wir freuen uns bereits auf das nächste Meetup!

 

Bei openForce haben wir eine Machine Learning Anwendung zur Sentiment Analyse von Twitter Datenströmen mit Apache Spark entwickelt. Das Projekt ist auf GitHub im Source Code verfügbar. Zusätzlich haben wir eine Demo Seite unter http://sentiment.openforce.com aufgesetzt. Damit laden wir zum Experimentieren mit Apache Spark ein und freuen uns über Feedback.

openForce entwickelt innovative Web- und mobile Softwarelösungen für seine Kunden. Dabei setzen wir auf moderne Technologien wie Scala und Apache Spark damit unsere Anwendungen

  • einfach anwendbar,
  • schnell,
  • sicher und
  • hoch skalierbar

sind.