Real-Time Analytics mit Spark und Cassandra im März 2015 OSBI – Workshop http://www.osbi-workshop.de/ WidasConcepts Unternehmensberatung GmbH Maybachstraße 2 71299 Wimsheim http://www.widas.de REAL-TIME ANALYTICS? Real-Time Analytics? 3 © WidasConcepts Real-Time Analytics mit Spark und Cassandra 4 © WidasConcepts CASSANDRA Cassandra 6 Vorteile Cassandra: massiv skalierbare verteilte Datenbank 1 CAP frei einstellbar, für Analytics: AP 2 3 KKV – Wide Columnar/Partitions 4 Zeitreihen optimierte Datenmodelle 5 6 Shared Nothing, Peer to Peer In Memory Tabellen Daten-Lokalität mit Wide Partitions © WidasConcepts Cassandra – Ring Struktur 7 Jeder Knoten in Cassandra ist äquivalent ansprechbar Konfigurierbare Replikation (lokal, DC-weise) 1 2 5 Client 4 3 © WidasConcepts Verfügbarkeit 8 „Can‘t Fail, Must Scale“ –System Datenreplikation sichert Verfügbarkeit Knotenausfall wird automatisch behandelt 1 2 5 Client 4 3 © WidasConcepts Skalierbarkeit Cassandra im Vergleich 9 Anzahl Operationen (Read/Write) pro Sec – Anzahl Knoten Quelle: Planet Cassandra © WidasConcepts SPARK Spark 11 Kernelemente 1 Verarbeitung im DAG (Directed Acyclic Graph) 2 3 Scala 4 lokale JVM Prozesse auf den Knoten 5 6 Resilent Distributed Datasets parallele Transformationen/Aktionen auf RDDs Operationen: map, filter, groupBy … Aktionen: count, collect, save … © WidasConcepts Spark - RDD 12 Resilent Distributed Datasets 1 immutable 2 3 logical collection of records 4 rebuildable 5 6 partitioned materialized in memory cached for future reuse © WidasConcepts Spark – RDD – Transformationen und Aktionen (parallel) Transformationen map filter groupByKey join … 13 Aktionen reduce collect count lookupKey … © WidasConcepts Spark – RDD – Resilent 14 Resilent Distributed Datasets speichern ihre Herkunft (Lineage) damit kann jederzeit bei Ausfall die entsprechende Partition der RDD neu aufgebaut werden HdfsRDD path: hdfs://… FilteredRDD func: contains(...) MappedRDD func: split(…) CachedRDD © WidasConcepts Spark Performanz im Vergleich 15 Logistic Regression 127 s / iteration first iteration 174 s further iterations 6 s Quelle: University of California, Berkeley © WidasConcepts Spark Stack Spark 16 Spark Streaming MLLib GraphX machine SQL learning real-­‐time Classification spez. RDDs Verarbeitung Clustering Operationen von D aten i n HiveQL Regressing PageRank “micro” kompatibel SVD++ Batches col. Filtering Spark © WidasConcepts Integration Spark & Cassandra Integration – Spark & Cassandra 18 mit Spark-Cassandra Connector Cassandra Tabellen sind als RDDs verfügbar auf jedem Cassandra Knoten wird ein Spark Executor eingesetzt 1 2 5 4 3 © WidasConcepts Vorteile der Integration zwischen Spark und Cassandra 1 Daten Lokalität, Token-Aware 2 Spark RDDs auf In Memory C* Tabellen 3 SQL auf Cassandra (Joins!) 4 Datenbank-basierte Filter in Spark 5 6 19 Spark Streaming wird unterstützt Beide Richtungen: Read and Write © WidasConcepts Spark Streaming Spark Streaming Datenstrom 21 Spark Streaming Batches Ergebnisse Spark © WidasConcepts Spark Streaming 1 22 Integrierbar mit Cassandra/Spark Treiber 2 Micro Batches (1 Sek), Discretized Streams 3 Exactly Once Semantik 4 RDD Funktionalität 5 Integration diverser MQ (z.B. Kafka) © WidasConcepts Umfeld Weiterentwicklungen im Spark Umfeld 1 SparkR, PySpark 2 Spark Integration in R 3 lapply Implementierung 4 kann in Closures in R verwendet werden 5 6 24 Interaktives R mit Spark möglich auf Daten in Cassandra © WidasConcepts In Zukunft ? Trennung wirklich „noch“ notwendig ? 26 © WidasConcepts Ist das nicht ein zu „großer“ Toolstack? 27 © WidasConcepts Vielleicht etwas einfacher? 28 © WidasConcepts Die Lösung für Analytics? (mit etwas HDFS) 29 © WidasConcepts 30 Wir beraten Sie gerne HighEnd-Technology requires HighEnd-Competence WidasConcepts ( Thomas Mann, Solution Architect Telefon: Mobile: +49 (7044) 95103 – 100 +49 162 259 56 90 Mail: [email protected] WidasConcepts GmbH Maybachstraße 2 71299 Wimsheim www.widas.de Dieses Dokument wurde von WidasConcepts erstellt. Die Verteilung, Zitierung und Vervielfältigung – auch auszugsweise – zum Zwecke der Weitergabe an Dritte ist nur mit vorheriger schriftlicher Zustimmung von WidasConcepts gestattet. This presentation was created by WidasConcepts. Distribution, citation, copying - completely or in extracts – for transfer purposes, is only permitted with prior written agreement. These abstracts and graphics were deployed by WidasConcepts within the scope of a presentation. It is no complete documentation of this event.