Cassandra et Spark Streaming
Architecture événementielle et Analytique temps réel
Victor Coustenoble Petit Déjeuner OCTO T...
Agenda
Confidential 2
• Cassandra / DataStax
• Spark / Spark Streaming
• Architecture / Cas métiers
• Démonstrations
3
DataStax délivre une plateforme de la base de données
Apache Cassandra, conçue spécifiquement pour les
besoins en Perfor...
Cas d’usage fréquents
Messagerie
Collections/
Playlists
Détection de
Fraude
Recommandation/
Personnalisation
Objets connec...
DataStax
Fondé en avril 2010
~35 500+
Santa Clara, Austin, New York, London, Paris, Sydney
400+
Employés Pourcent Clients
5
Straightening the road
RELATIONAL DATABASES
CQL SQL
OpsCenter / DevCenter Management tools
DSE for search & analytics Inte...
• Sans Maître-Esclave (peer-to-peer), sans Point Unique de Défaillance (No SPOF)
• Distribuée avec la possibilité de Data ...
Confidential 8
DataStax Enterprise
Confiance
d’utilisatio
n
Fonctionnalités
d’entreprise
DataStax Enterprise
DataStax supporte la communauté open source et les entreprises
9
Open Source/Communauté Enterprise Sof...
Confidential 10
Pourquoi Spark + Cassandra ?
Analytique Opérationnelle / Temps Réel
©2014 DataStax Confidential. Do not distribute without consent. 11
Enrichissement d...
Cassandra a besoin d’un framework de traitement distribué
Pour des requêtes indépendates du modèle de données
Pour des o...
• Spark = Traitement Distribué
• “In-memory Map/Reduce”, multi-thread, caching
• Intégration poussée de Spark avec Cassand...
Cas d’utilisation de Spark pour Cassandra
14
Load data from various
sources
Analytics (join, aggregate, transform, …)
Sani...
©2013 DataStax Confidential. Do not distribute without consent. 15
• Fast, distributed, scalable and fault
tolerant cluste...
Spark – Représentation Conceptuelle
©2013 DataStax Confidential. Do not distribute without consent. 16
RDD
RDD
RDD
RDD
Tra...
Composants Spark + Cassandra
Shark
or
Spark SQL
Structured
Spark
Streaming
Real-time
MLlib
Machine learning
Spark (General...
Connecteur Cassandra Spark
C*
C*
C*C*
Spark Executor
C* Java Driver
Spark-Cassandra Connector
User Application
Cassandra
Connecteur Cassandra Spark
•Tables Cassandra tables exposées en temps que RDDs Spark
•Chargement des données depuis Cassan...
Lecture des données
val table_rdd = sc
.cassandraTable[CassandraRow]("db", "tweets")
.select("user_name", "message")
.wher...
Ecriture des données
CREATE TABLE test.words(word TEXT PRIMARY KEY, count INT);
val collection_rdd = sc.parallelize(Seq(("...
“Je veux des résultats en continue depuis un flux de données”
“Je veux une garantie que mes messages soient traités une se...
Spark Streaming Input
Données en entrée depuis:
• une socket TCP
• des messages depuis Kafka
• des logs depuis Flume
• des...
Utilisation de Spark Streaming
L’API de Spark Streaming est
identique à l’API classique de Spark
=> Des portions de code b...
Et dans une architecture ?
Cassandra + Spark = Recommandation + Analytique
©2014 DataStax Confidential. Do not distribute without consent. 26
Enrichi...
“Pour du calcul de prévisions, j’ai besoin d’un accès rapide à
mes données historiques couplé à des données en temps réel
...
Architecture Lambda
Une architecture de traitement de données conçue pour gérer des énormes
quantités de données en tirant...
Architecture Lambda
Confidential 30
Applications Capteurs Web Mobiles
Détection
d’intrusion
Détection de
panne
Analyse de
navigation
Analyse d...
Démonstrations Spark Streaming + Cassandra
Twitter
• Dans des intervals de 5 secondes, comptage et stockage du nombre de T...
Merci, Questions ?
We power the big data apps
that transform business.
©2013 DataStax Confidential. Do not distribute with...
Prochain SlideShare
Chargement dans…5
×

Datastax Cassandra + Spark Streaming

1 687 vues

Publié le

Architecture événementielle et Analytique temps réel avec Apache Cassandra et Spark Streaming

Publié dans : Logiciels
0 commentaire
6 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 687
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
50
Commentaires
0
J’aime
6
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Key Takeaway-
    Introduce the company, our incredible growth and global presence, that we are in about 25% of the FORTUNE 100, and the fact that many of the online and mobile applications you already use every day are actually built on DataStax.

    Talk Track-
    DataStax, the leading distributed database technology, delivers Apache Cassandra to the world’s most innovative companies such as Netflix, Rackspace, Pearson Education and Constant Contact. DataStax is built to be agile, always-on, and predictably scalable to any size.

    We were founded in April 2010, so we are a little over 4 years old. We are headquartered in Santa Clara, California and have offices in Austin TX, New York, London, England and Sydney Australia. We now have over 330 employees; this number will reach well over 400 by the end of our fiscal year (Jan 31 2015) and double by the end of FY16.

    Currently 25% of the Fortune 100 use us, and our success has been built on our customers success and today and we have over 500 customers worldwide, in over 40 countries. The logos you see here are ones that you are already using every day.

    These applications are all built on DataStax and Apache Cassandra.

    So how have we come so far in such a short time…..?
  • En fait la mission de DataStax est de vos libérer de ces incertitudes et vous faciliter la route sur cette nouvelle voie.
    A cette fin, nous vous offrons un DML DDL appelé CQL très proche du SQL maitrisé par vos équipes, des outils complets d’administration et de monitoring,

    So, What DataStax is doing is trying to straightened that bend in the road. We are providing things like CQL, and management tools called DevCenter and OpsCenter. DataStax Enterprise provides integration into analytics and search capabilities and we do it all within a secure environment. We also provide consultants and training courses, including free virtual training to help get you up to speed.
  • Cassandra is designed to handle big data workloads across multiple data centers with no single point of failure, providing enterprises with continuous availability without compromising performance.
    It uses aspects of Dynamos partitioning and replication and a log-structured data model similar to Bigtable’s.

    It takes its distribution algorithm from Dynamo and its data model from Bigtable.



    Cassandra is a reinvented database which is lightening fast and always on ideal for todays online applications where relational databases like Oracle can’t keep up.
    This means that in todays world, cassandra stores and processes real time information at fast, predictive performance and built in fault tolerance
  • DataStax is the company that delivers Cassandra to the enterprise.

    First, we take the open source software and put it through rigorous quality assurance tests including a 1000 node scalability test.
    We certify it and provide the worlds most comprehensive support, training and consulting for Cassandra so that you can get up and running quickly.

    But that isn’t all DataStax does.

    We also build additional software features on top of DataStax including security, search, analytics as well as provide in memory capabilities that don’t come with the open source Cassandra product.
    We also provide management services to help visualize your nodes, plan your capacity and repair issues automatically.
    Finally, we also provide developer tools and drivers as well as monitoring tools. DataStax is the commercial company behind Apache Cassandra plus a whole host of additional software and services.
  • Predictive analytics

    Does this simple architecture look familiar to you? Lambda

    Nathan Marz
  • DUYHAI
  • Shark is hive compatible – you can run the same application on Shark
    Shark integration is only on DSE, otherwise you have to wait for Spark SQL

    Separate projects – Spark is totally different project
    Spark SQL has borrowed from Spark

    Both promising to be Hive compatible
  • Predictive analytics

    Does this simple architecture look familiar to you? Lambda

    Nathan Marz
  • Datastax Cassandra + Spark Streaming

    1. 1. Cassandra et Spark Streaming Architecture événementielle et Analytique temps réel Victor Coustenoble Petit Déjeuner OCTO Technology Ingénieur Solutions 14/04/15 victor.coustenoble@datastax.com @vizanalytics
    2. 2. Agenda Confidential 2 • Cassandra / DataStax • Spark / Spark Streaming • Architecture / Cas métiers • Démonstrations
    3. 3. 3 DataStax délivre une plateforme de la base de données Apache Cassandra, conçue spécifiquement pour les besoins en Performance et Disponibilité exigés par les applications d’Internet des Objets, Web ou Mobiles, en offrant aux entreprises une base de données Sécurisée toujours disponible, qui reste Simple à administrer même pour des déploiements à grande échelle, dans un seul ou de Multiples Data Centers et dans le Cloud.
    4. 4. Cas d’usage fréquents Messagerie Collections/ Playlists Détection de Fraude Recommandation/ Personnalisation Objets connectés/ Données de Capteurs
    5. 5. DataStax Fondé en avril 2010 ~35 500+ Santa Clara, Austin, New York, London, Paris, Sydney 400+ Employés Pourcent Clients 5
    6. 6. Straightening the road RELATIONAL DATABASES CQL SQL OpsCenter / DevCenter Management tools DSE for search & analytics Integration Security Security Support, consulting & training 30 years ecosystem
    7. 7. • Sans Maître-Esclave (peer-to-peer), sans Point Unique de Défaillance (No SPOF) • Distribuée avec la possibilité de Data Center • 100% Disponible (replication) • Massivement scalable • Montée en charge linéaire • Haute Performance (lecture ET écriture) • Multi Data Center • Séries Temporelles • Multi Modèle • Simple à Exploiter • Language CQL (comme SQL) • Outils OpsCenter / DevCenter Apache Cassandra™ 7
    8. 8. Confidential 8 DataStax Enterprise Confiance d’utilisatio n Fonctionnalités d’entreprise
    9. 9. DataStax Enterprise DataStax supporte la communauté open source et les entreprises 9 Open Source/Communauté Enterprise Software • DataStax emploie le président du projet Apache et développe 80+% du code de Apache Cassandra • DataStax Community Edition • DataStax Simple OpsCenter • DataStax DevCenter • DataStax Drivers/Connecteurs • Documentation en ligne • Formation en ligne • Mailing lists et forums • DataStax Enterprise Edition • Cassandra Certifié • In-Memory • Analytique intégré (Hadoop, Spark) • Recherche intégrée (Solr) • Securité d’entreprise • DataStax OpsCenter Avancé • Services d’Administration Automatique • Support Expert • Aide et Consulting • Formation Professionnelle
    10. 10. Confidential 10 Pourquoi Spark + Cassandra ?
    11. 11. Analytique Opérationnelle / Temps Réel ©2014 DataStax Confidential. Do not distribute without consent. 11 Enrichissement des Données Contraintes d’intégrité Détection de dépassement de seuil Batch Processing Machine Learning Agrégats pré-calculés Création de KPI Données Traitement Flux
    12. 12. Cassandra a besoin d’un framework de traitement distribué Pour des requêtes indépendates du modèle de données Pour des opérations cross-table (JOIN, UNION) Pour des analyses complexes (machine learning) Pour des transformation, des aggrégations Pour des traitements de flux …
    13. 13. • Spark = Traitement Distribué • “In-memory Map/Reduce”, multi-thread, caching • Intégration poussée de Spark avec Cassandra • Partenariat DataStax / Databricks • x10 – x100 plus rapide que Hadoop MapReduce ©2014 DataStax Confidential. Do not distribute without consent. 13 Replication Cassandra Application Opérationnelle Noeuds Spark Le SDK du « Big Data »
    14. 14. Cas d’utilisation de Spark pour Cassandra 14 Load data from various sources Analytics (join, aggregate, transform, …) Sanitize, validate, normalize data Schema migration, Data conversion
    15. 15. ©2013 DataStax Confidential. Do not distribute without consent. 15 • Fast, distributed, scalable and fault tolerant cluster compute system • Enables Low-latency with complex analytics • Developed in 2009 at UC Berkeley AMPLab, open sourced in 2010, and became a top-level Apache project in February, 2014
    16. 16. Spark – Représentation Conceptuelle ©2013 DataStax Confidential. Do not distribute without consent. 16 RDD RDD RDD RDD Transformations Action Value counts = lines.flatMap(lambda s: s.split(“ ”)) .map(lambda word: (word, 1)) .reduceByKey(lambda x, y: x + y) counts.saveAsTextFile(sys.argv[2]) lines = sc.textFile(sys.argv[1]) 1 2 3 Resilient Distributed Datasets (RDDs) – Spark’s datasets Fault tolerant collection of elements that enable parallel processing Transformation and Actions are executed against RDDs Can persist in Memory, on Disk, or both Can be partitioned to control parallel processing Can be reused
    17. 17. Composants Spark + Cassandra Shark or Spark SQL Structured Spark Streaming Real-time MLlib Machine learning Spark (General execution engine) GraphX Graph Cassandra
    18. 18. Connecteur Cassandra Spark C* C* C*C* Spark Executor C* Java Driver Spark-Cassandra Connector User Application Cassandra
    19. 19. Connecteur Cassandra Spark •Tables Cassandra tables exposées en temps que RDDs Spark •Chargement des données depuis Cassandra vers Spark •Ecriture des données depuis Spark vers Cassandra •Object mapper : Mapping des tables Cassandra en objets Scala/Java •Conversions des types Cassandra en type Scala/Java •Sélection et filtres des données au niveau de Cassandra •API Scala, Java et Pyhton
    20. 20. Lecture des données val table_rdd = sc .cassandraTable[CassandraRow]("db", "tweets") .select("user_name", "message") .where("user_name = ?", "ewa") row representation keyspace table server side column and row selection
    21. 21. Ecriture des données CREATE TABLE test.words(word TEXT PRIMARY KEY, count INT); val collection_rdd = sc.parallelize(Seq(("foo", 2), ("bar", 5))) collection_rdd.saveToCassandra("test", "words", SomeColumns("word", "count")) cqlsh:test> select * from words; word | count ------+------- bar | 5 foo | 2 (2 rows)
    22. 22. “Je veux des résultats en continue depuis un flux de données” “Je veux une garantie que mes messages soient traités une seule fois” DStream (Discretized Stream) Flux continu de micro batchs pour: • Traitements complexes avec un minimal d’effort • Calculs sur des flux dans un petit interval de temps Une transformation sur DStream = transformations sur ses RDDs Quand le batch n’est plus suffisant
    23. 23. Spark Streaming Input Données en entrée depuis: • une socket TCP • des messages depuis Kafka • des logs depuis Flume • des fichiers depuis HDFS (monitorer la création de nouveaux fichiers) • une file MQ (type ZeroMQ) • des tweets depuis Twitter (API Twitter4J) • …
    24. 24. Utilisation de Spark Streaming L’API de Spark Streaming est identique à l’API classique de Spark => Des portions de code batch et de flux peuvent être partagés  import com.datastax.spark.connector.streaming._ // Spark connection options val conf = new SparkConf(true)... // streaming with 1 second batch window val ssc = new StreamingContext(conf, Seconds(1)) // stream input val lines = ssc.socketTextStream(serverIP, serverPort) // count words val wordCounts = lines.flatMap(_.split(" ")).map(word => (word, 1)).reduceByKey(_ + _) // stream output wordCounts.saveToCassandra("test", "words") // start processing ssc.start() ssc.awaitTermination()
    25. 25. Et dans une architecture ?
    26. 26. Cassandra + Spark = Recommandation + Analytique ©2014 DataStax Confidential. Do not distribute without consent. 26 Enrichissement des Données Batch Processing Machine Learning Agrégats pré-calculésDonnées Pas d’ETL
    27. 27. “Pour du calcul de prévisions, j’ai besoin d’un accès rapide à mes données historiques couplé à des données en temps réel provenant d’un flux”
    28. 28. Architecture Lambda Une architecture de traitement de données conçue pour gérer des énormes quantités de données en tirant avantage à la fois des méthodes de traitement batch et des traitements de flux.
    29. 29. Architecture Lambda
    30. 30. Confidential 30 Applications Capteurs Web Mobiles Détection d’intrusion Détection de panne Analyse de navigation Analyse de métriques réseaux Détection de fraude Optimisation dynamique de processus Recommandatio ns Publicité géolocalisée Traitement de Log Planning de logistique Analyse de sentiment Analyse et traitement temps réel
    31. 31. Démonstrations Spark Streaming + Cassandra Twitter • Dans des intervals de 5 secondes, comptage et stockage du nombre de Tweets contenant les mots "love", "hate", "cat" ou "lol" • https://github.com/doanduyhai/Cassandra-Spark-Demo Meetup RSVP • Nombre total de participants par pays (depuis le démarrage de l’application). Rafraichissement toutes les 5 secondes, traitement simple d’un flux. • Les sujets des Meetups les plus populaires dans les 5 dernières minutes. Rafraichissement toutes les 10 secondes, traitement dans une plage de temps. • https://github.com/rstml/datastax-spark-streaming-demo © 2014 DataStax, All Rights Reserved. Company Confidential 31
    32. 32. Merci, Questions ? We power the big data apps that transform business. ©2013 DataStax Confidential. Do not distribute without consent. victor.coustenoble@datastax.com @vizanalytics

    ×