Apache Spark – Success Story

Wie im ersten Artikel zu Apache Spark bereits angerissen, gibt es durch die immer weiter fortschreitende Digitalisierung (Industrie 4.0, Smart Grids, Connected Cars, Internet of Things, sowie große Onlinevertriebsplattformen und Soziale Netzwerke) immer mehr Geräte und Nutzer, welche kontinuierlich neue Daten generieren. Um diese stetig wachsende Datenmenge zu verwerten, gibt es große verteilte Systeme, welche die Daten zunächst strukturieren und aufbereiten, um sie anschließend auswerten.

Dieser Artikel ist ein Follow-Up zur zweiteiligen Serie zu Apache Spark. Nach der allgemeinen Einführung in Apache Spark im ersten Artikel der Serie und den Codebeispielen im zweiten Artikel, in welchen Wörter, beziehungsweise Zeichen gezählt und ausgewertet wurden, sowie ein Apache-Logfile analysiert wurde, werden in diesem Follow-Up Artikel einige Production Use Cases und Success Stories vorgestellt. Hier sieben Success Stories aus den Bereichen E-Health, E-Commerce, Social Networks, Streaming und Shared Economy.

Driver: Driver ist ein E-Health Unternehmen aus San Francisco, welches sich auf die Genomanalyse von Gewebeproben von Krebspatienten spezialisiert hat. Im Projekt Open Genomics verwenden sie Apache Spark und Scala, um große Mengen an DNA von Krebszellen mit der DNA gesunder Zellen von Krebspatienten zu vergleichen. Daraus kann anschließend ein detaillierterer Report als bei einer Standarduntersuchung erstellt werden. Dieser ermöglicht wiederum eine spezialisiertere und dadurch bessere Behandlung der Krebspatienten.

Alibaba: Alibaba setzt in ihrem Online-Auktionshaus Taobao Spark und GraphX im Bereich der Bildverarbeitung ein. Komplexe Feature-Extraction-Algorithmen analysieren über Wochen hinweg Petabytes an Bildern, um die dargestellten Objekte zu erkennen und weitere Erkenntnisse über bessere Produktbilder zu sammeln. Wie Feature-Extraction-Algorithmen mit der Hilfe von maschinellem Lernen im Detail funktionieren, ist hier umfangreich ausgeführt. Da Alibaba stark auf graphorientierte Datenbanken setzt, wird Spark Streaming abgesehen von der Bildanalyse in Verbindung mit GraphX auch eingesetzt, um den Produktionsgraphen in Echtzeit zu analysieren.

Pinterest: Beim sozialen Bildernetzwerk Pinterest werden Events, wie Pins (Veröffentlichung eines Bildes) und Repins (Teilen eines Bildes) zunächst in einen Apache Kafka Bus gepusht. Mit Spark Streaming werden diese Daten dann in Echtzeit analysiert. Zusätzlich werden Pin-Kategorie und die Geolocation-Daten on-the-fly eingefügt. Anschließend werden die Events über einen MemSQL Spark Connector von Spark in einer MemSQL-Datenbank abgelegt.

Yahoo: Beim Webportal Yahoo wird Spark eingesetzt, um die News Seite im Web für jeden Nutzer in Echtzeit zu personalisieren. Dazu werden außerdem Algorithmen zum maschinellen Lernen basierend auf Spark eingesetzt. Abgesehen davon werden mit Spark die für Werbeeinblendungen relevanten Telemetrie- und Metadaten ausgewertet. In diesem Fall wird zusätzlich Hive on Spark (Shark) verwendet, um die bestehenden Business Intelligence Tools weiter verwenden zu können. Dazu verwendet Shark die standardisierte Hive Server API, sodass alle Tools, die mit Hive kompatibel sind, auch mit Shark kompatibel sind.

Ebay: Die Hauptverwendung bei Ebay findet Spark im Bereich der Big-Data-Analyse. Dabei entwickeln Analysten die Analysejobs in Scala. Diese Jobs werden dann über einen Yarn-Container auf einem mit Yarn virtualisierten Hadoop-Cluster ausgeführt und können dementsprechend eine einstellbare Menge an Speicher und CPU-Kernen zur Ausführung verwenden. Abgesehen davon wird Spark bei Ebay ebenfalls in Verbindung mit Shark verwendet, um die Hadoop SQL Performance in mehreren Anwendungsfeldern zu verbessern.

Netflix: Beim Film- und Serienstreamingdienstleister Netflix wird Spark Streaming eingesetzt, um 450 Milliarden täglich anfallende Events, welche über eine Apache Kafka-Pipeline angeliefert wurden, in Echtzeit zu verarbeiten. Die Events enthalten Daten über neu registrierte Nutzer, angesehene Filme und Serien, abgegebene Bewertungen, etc. Außerdem wird Spark eingesetzt, um mit Hilfe von maschinellem Lernen unter anderem auf Basis dieser Events in Echtzeit neue Film- und Serienvorschläge für die Nutzer zu generieren.

Uber: Beim Fahrdienstleister Uber wurde vor einiger Zeit das Kernsystem komplett auf Hadoop und Spark umgestellt. Im System von 2014 gab es Apache Kafka Logs, die von den unterschiedlichen Clusterknoten über einen Uploader auf ein gemeinsames Amazon S3 hochgeladen und über EMR verarbeitet wurden. Außerdem gab es ein selbst entwickeltes ETL (Extract-Transform-Load)-System auf Basis von Celery/Python, welches diese Daten zusammen mit Daten aus den relationalen und nicht-relationalen Datenbanken weiter verarbeitete und aufbereitete. Anschließend wurden die neu strukturierten Daten in einem OLAP Warehouse abgelegt. Da es bei der Skalierung auf mehrere Rechenzentren mit diesem System zu Problemen kam, wurde ein neues, besser integriertes System basierend auf Hadoop und Spark entwickelt. Hier werden die Rohdaten aus den Apache Kafka Logs, sowie den relationalen und nicht-relationalen Datenbanken über ein Hadoop File System verfügbar gemacht. Um diese Rohdaten aufzubereiten, werden Spark und Spark Streaming verwendet. Um die Daten anschließend im OLAP Warehouse abzulegen, wird Spark SQL verwendet.

Wenn es um Echtzeitdatenverarbeitung mit komplexeren Auswertungsprozessen geht, kann Apache Spark mit Spark Streaming seine Stärken optimal ausspielen. Neben den komplexeren Auswertungsprozessen hat auch das Feld des maschinellen Lernens mit MLib, sowie das Feld der Verarbeitung von Graphen mit GraphX im Zusammenhang mit Apache Spark eine hohe Bedeutung. Das Besondere an Apache Spark ist, dass all diese Anwendungsfelder mit überschaubarem Aufwand in ein System integriert werden können, welches zusätzlich mit Hadoop und allen darauf basierenden Technologien kompatibel ist. Außerdem gibt es Schnittstellen für unterschiedlichste Datenbanksysteme und Datenbankparadigmen, wie klassische relationale SQL-Datenbanken, nicht-relationale Datenbanksysteme sowie Systeme basierend auf Graphen.

Short URL for this post: http://wp.me/p4nxik-2NC
This entry was posted in Open Source BI and tagged , , , . Bookmark the permalink.

Leave a Reply