30
Real-Time Analytics mit Spark und Cassandra WidasConcepts Unternehmensberatung GmbH Maybachstraße 2 71299 Wimsheim http://www.widas.de im März 2015 OSBI – Workshop http://www.osbi-workshop.de/

Real-Time-Analytics mit Spark und Cassandra

Embed Size (px)

Citation preview

Page 1: Real-Time-Analytics mit Spark und Cassandra

Real-Time Analytics mit Spark

und Cassandra

WidasConcepts Unternehmensberatung GmbH � Maybachstraße 2 � 71299 Wimsheim � http://www.widas.de

im März 2015 OSBI – Workshop

http://www.osbi-workshop.de/

Page 2: Real-Time-Analytics mit Spark und Cassandra

REAL-TIME ANALYTICS?

Page 3: Real-Time-Analytics mit Spark und Cassandra

3

© WidasConcepts

Real-Time Analytics?

Page 4: Real-Time-Analytics mit Spark und Cassandra

4

© WidasConcepts

Real-Time Analytics mit Spark und Cassandra

Page 5: Real-Time-Analytics mit Spark und Cassandra

CASSANDRA

Page 6: Real-Time-Analytics mit Spark und Cassandra

6

© WidasConcepts

Cassandra

Vorteile Cassandra: massiv skalierbare verteilte Datenbank

CAP frei einstellbar, für Analytics: AP

Shared Nothing, Peer to Peer

KKV – Wide Columnar/Partitions

Zeitreihen optimierte Datenmodelle

In Memory Tabellen

Daten-Lokalität mit Wide Partitions

1

2

3 4

5

6

Page 7: Real-Time-Analytics mit Spark und Cassandra

7

© WidasConcepts

Cassandra – Ring Struktur Jeder Knoten in Cassandra ist äquivalent ansprechbar Konfigurierbare Replikation (lokal, DC-weise)

1

2

3 4

5

Client

Page 8: Real-Time-Analytics mit Spark und Cassandra

8

© WidasConcepts

  „Can‘t Fail, Must Scale“ –System   Datenreplikation sichert Verfügbarkeit

  Knotenausfall wird automatisch behandelt

Verfügbarkeit

1

2

3 4

5

Client

Page 9: Real-Time-Analytics mit Spark und Cassandra

9

© WidasConcepts

Skalierbarkeit Cassandra im Vergleich

Quelle: Planet Cassandra

Anzahl Operationen (Read/Write) pro Sec – Anzahl Knoten

Page 10: Real-Time-Analytics mit Spark und Cassandra

SPARK

Page 11: Real-Time-Analytics mit Spark und Cassandra

11

© WidasConcepts

Spark

Kernelemente

Verarbeitung im DAG (Directed Acyclic Graph)

Resilent Distributed Datasets

Scala

lokale JVM Prozesse auf den Knoten

parallele Transformationen/Aktionen auf RDDs

Operationen: map, filter, groupBy … Aktionen: count, collect, save …

1

2

3 4

5

6

Page 12: Real-Time-Analytics mit Spark und Cassandra

12

© WidasConcepts

Spark - RDD

Resilent Distributed Datasets

immutable

partitioned

logical collection of records

rebuildable

materialized in memory

cached for future reuse

1

2

3 4

5

6

Page 13: Real-Time-Analytics mit Spark und Cassandra

13

© WidasConcepts

Spark – RDD – Transformationen und Aktionen (parallel)

Transformationen map filter groupByKey join …

Aktionen reduce collect count lookupKey …

Page 14: Real-Time-Analytics mit Spark und Cassandra

14

© WidasConcepts

Spark – RDD – Resilent

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

Page 15: Real-Time-Analytics mit Spark und Cassandra

15

© WidasConcepts

Spark Performanz im Vergleich

Logistic Regression

127  s  /  iteration  

first  iteration  174  s  further  iterations  6  s  

Quelle: University of California, Berkeley

Page 16: Real-Time-Analytics mit Spark und Cassandra

16

© WidasConcepts

Spark Stack

Spark  

Spark  Streaming  real-­‐time  

     

Verarbeitung  von  Daten  in  

“micro”  Batches  

Spark  SQL            

HiveQL  kompatibel  

MLLib  machine  learning  

     

Classification  Clustering  Regressing  col.  Filtering  

 GraphX  

     

spez.  RDDs  Operationen  PageRank  SVD++  

Page 17: Real-Time-Analytics mit Spark und Cassandra

Integration

Spark & Cassandra

Page 18: Real-Time-Analytics mit Spark und Cassandra

18

© WidasConcepts

Integration – Spark & Cassandra mit Spark-Cassandra Connector Cassandra Tabellen sind als RDDs verfügbar auf jedem Cassandra Knoten wird ein Spark Executor eingesetzt

1

2

3 4

5

Page 19: Real-Time-Analytics mit Spark und Cassandra

19

© WidasConcepts

Vorteile der Integration zwischen Spark und Cassandra

Daten Lokalität, Token-Aware

Spark RDDs auf In Memory C* Tabellen

SQL auf Cassandra (Joins!)

Datenbank-basierte Filter in Spark

Spark Streaming wird unterstützt

Beide Richtungen: Read and Write

1

2

3 4

5

6

Page 20: Real-Time-Analytics mit Spark und Cassandra

Spark Streaming

Page 21: Real-Time-Analytics mit Spark und Cassandra

21

© WidasConcepts

Spark Streaming

Spark  

Spark  Streaming  

batches  of  X  seconds  

live  data  stream  

processed  results   Spark  

Spark  Streaming  

batches  of  X  seconds  

live  data  stream  

processed  results   Spark  

Spark  Streaming  

batches  of  X  seconds  

live  data  stream  

processed  results   Spark  

Spark  Streaming  

batches  of  X  seconds  

live  data  stream  

processed  results  

Spark  

Spark  Streaming  

Batches  

Datenstrom  

Ergebnisse  

Page 22: Real-Time-Analytics mit Spark und Cassandra

22

© WidasConcepts

Spark Streaming

Integrierbar mit Cassandra/Spark Treiber

Micro Batches (1 Sek), Discretized Streams

Exactly Once Semantik

RDD Funktionalität

1

2

3 4

Integration diverser MQ (z.B. Kafka) 5

Page 23: Real-Time-Analytics mit Spark und Cassandra

Umfeld

Page 24: Real-Time-Analytics mit Spark und Cassandra

24

© WidasConcepts

Weiterentwicklungen im Spark Umfeld

SparkR, PySpark

Spark Integration in R

lapply Implementierung

kann in Closures in R verwendet werden

1

2

3 4

Interaktives R mit Spark möglich 5 auf Daten in Cassandra 6

Page 25: Real-Time-Analytics mit Spark und Cassandra

In Zukunft ?

Page 26: Real-Time-Analytics mit Spark und Cassandra

26

© WidasConcepts

Trennung wirklich „noch“ notwendig ?

Page 27: Real-Time-Analytics mit Spark und Cassandra

27

© WidasConcepts

Ist das nicht ein zu „großer“ Toolstack?

Page 28: Real-Time-Analytics mit Spark und Cassandra

28

© WidasConcepts

Vielleicht etwas einfacher?

Page 29: Real-Time-Analytics mit Spark und Cassandra

29

© WidasConcepts

Die Lösung für Analytics? (mit etwas HDFS)

Page 30: Real-Time-Analytics mit Spark und Cassandra

WidasConcepts

HighEnd-Technology requires HighEnd-Competence ( Wir beraten Sie gerne

WidasConcepts GmbH

Maybachstraße 2 71299 Wimsheim

www.widas.de

30

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.

Thomas Mann, Solution Architect

Telefon: +49 (7044) 95103 – 100 Mobile: +49 162 259 56 90

Mail: [email protected]