SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Architecture « Big Data » Open
Source SMACK
Julien Anguenot
VP Software Engineering, iland cloud
Datastax MVP for Apache Cassandra
www.iland.comDRaaS, Cloud Backup, Secure Cloud
Les challenges du Big Data
● Sources multiples de données (internes / externes)
● Taille des données augmente
● Scalabilité et disponibilité
● Les systèmes doivent être distribués (multi-datacenters)
● Hybride (Cloud et sur site)
● Traitement dynamique des données (donnée à un temps « t »)
● Chaîne de traitement de données (pipeline)
● Gestion de systèmes complexes (clusters) distribués
● Coût (technologique et humain)
S.M.A.C.K
● Spark (moteur)
● Mesos (conteneur)
● Akka (modèle)
● Cassandra (stockage)
● Kafka  (agent de
message)
https://www.apache.org/
Kafka
● https://kakfa.apache.org
● Système de messaging distribué
● Publication – Abonnement (« pub-sub »)
● Rapide, durable, évolutif, performant, faible latence
● Développé par Linkedin
● Apache Foundation
Kafka : cas d’utilisation
● Agrégation de logs
● Files d’attente
● Monitoring
● Traitement « temps réel »
Kafka : APIs core (1/2)
● API « producer » 
● API « consumer »
● API « stream »
● API « connector »
https://kafka.apache.org/intro
Kafka : APIs core (2/2)
● API « producer » : publication de données vers un ou
plusieurs brokers (topics) 
● API « consumer » : abonnement et récupération de données
depuis un ou plusieurs brokers
● API « stream » application consomme des données depuis 1
ou plusieurs topics et publient en sortie sur un ou plusieurs
topics. (Processing et transformation)
● API « connector » composants extensibles réutilisables (Akka
Stream par exemple)
Kafka : concepts de base (1/2)
● Les producteurs publient des données vers les
brokers
● Les consommateurs s’abonnent et récupèrent les
données depuis les brokers
Kafka : concepts de base (2/2)
● Kafka tourne en mode cluster
● Le cluster stocke des « streams » de données dans des
topics
● Les topics sont divisés en partitions et répliqués
fonction du facteur de réplication. (configurable)
● Chaque enregistrement contient : clef, valeur et
timestamp
Kafka : les garanties
● Les messages sont ordonnés dans l’ordre dans lequel ils
sont envoyés par le producteur
● Les consommateurs reçoivent les messages dans
l’ordre dans lequel ils sont insérés par le producteur
dans le log
● Les messages sont délivrés au moins 1x
● Si RF = N, N-1 pannes serveurs sans perde de
messages commîtes
Cassandra
● Base de données distribuée « orientée colonnes »
● Google Big Table (modèle de données)
● Amazon's Dynamo (architecture distribuées)
● Réplication multi data-center native (Cloud et sur site)
● Fini le sharding
● Faible latence en écriture
● Large volume de données
● Élasticité : scalabilité linéaire
● Haute dispo : Pas de master / slave == pas de SPOF
● http://cassandra.apache.org/
Pourquoi utiliser Cassandra ?
● Déploiements massifs
● Beaucoup d’écritures
● Application distribuée géographiquement
● Application a besoin d’évoluer
http://www.datastax.com/
Comment ça marche ?
● Écriture séquentielle dans un commit log (fichier)
● Indexation et écriture en mémoire dans des memtables
● Sérialisation des données sur disque dans des SSTables
● Les données sont alors partitionnées et répliquer
automatiquement dans le cluster
● SSTables sont consolidées (fonction de la stratégie) par des
compactions et nettoie les tombsones
● Les repairs garantissent la consistance du cluster
Cassandra : l’abstraction
● Cluster
● Data-center
● Racks
● Serveurs (l’instance Cassandra)
● Vnodes (Abstraction de stockage)
Cassandra : modèle de données
● Keyspace
● Table
● Primary Key
● Index
Cassandra : CQL
● Cassandra Query Language (CQL)
● Remplace Thrift
● CQL ressemble à du SQL
● DDL (CREATE, ALTER, DROP)
● DML (INSERT, UPDATE, DELETE, TRUNCATE)
● Query (SELECT)
● Types assez riches et similaires à SQL
● Drivers et cqlsh
lectures
● Dynamo: Amazon’s Highly Distributed Key-Value
Store:)
http://www.allthingsdistributed.com/2007/10/amazons_
dynamo.html
● Brewer's CAP theorem :
https://fenix.tecnico.ulisboa.pt/downloadFile/11265183
82178117/10.e-CAP-3.pdf
Spark
● Moteur générique performant pour larges sources de
données distribuées
● Framework complet et unifié (type de données et sources de
données)
● MapReduce ++
● Utilisation mémoire et CPU vs disque et réseau (Hadoop)
● Java, Scala, Python, Closure et R
● https://spark.apache.org/
https://databricks.com/spark/about
Spark : l’écosystème
● Spark Streaming : traitement temps-réel des données
en flux (Dstream, RDD (Resilient Distributed Dataset)
● Spark SQL : expose des données Spark par API JDBC –
SQL, BI etc. - données extraite en JSON, Parquet, etc.
● Spark Mlib : bibliothèque de machine learning –
classification, regression, clustering, reduction etc.
● Spark GraphX : API pour traitement graphs –
extensions des RDD
En particulier
● Spark Cassandra Connector :
https://github.com/datastax/spark-cassandra-con
nector
● Spark Streaming + Kafka :
http://spark.apache.org/docs/latest/streaming-kaf
ka-0-10-integration.html
Spark : les jobs
● Standalone
● Mesos
● YARN
Spark & Hadoop
● Spark ne remplace pas Hadoop
● Spark et Hadoop fonctionne très bien ensemble
● Hadoop peut être utiliser comme stockage de données
distribuées (vs Cassandra)
● Spark beaucoup plus rapide que Hadoop pour les
traitement en mémoire
● « fast-data> vs « slow-data »
Akka
● http://akka.io/
● Toolkit et runtime pour applications concurrentes,
distribuées, résilientes et « event-driven » sur JVM
● Java & Scala : bibliothèque (JAR) ou natif SBT
● Reactive manifesto : http://www.reactivemanifesto.org/
● « Actor model »
● http://akka.io/
« Actor model »
● Distribué
● Parallèle
● Async
● « Non-blocking »
● Tolérant à la panne : superviseur et « let it crash » sémantique
● Le système peut tourner en multi-JVM
● Changements d’état du système peuvent être sauvegardés
● Peu de place en HEP pour des millions d’acteurs
Akka et Kafka
● Akka Streams : Kafka « Connector »
http://doc.akka.io/docs/akka-stream-and-http-experiment
al/current/
● Reactive Kafka :
https://github.com/softwaremill/reactive-kafka
Mesos
● Gestion de cluster pour environnements distribués
● Abstraction (Physique, VM, Conteneur Docker) et unification de
l’ensemble des ressources : CPU, mémoire, disque
● Allocation dynamique de ressources
● Gestion de l’exécution des tâches
● Isolation des ressources
● Tolérant à la panne
● Optimisation des ressources et des coûts
● http://mesos.apache.org/
Google « Borg »
● Google « Borg » white paper :
http://research.google.com/pubs/pub43438.
html
● Site Reliability Engineering - How Google
Runs Production Systems :
http://shop.oreilly.com/product/0636920041
528.do
Mesos : concepts de base (1/2)
● Le master daemon gère des agents (slaves) qui tournent sur chaque
nœuds du cluster
● Le master gère le partage des ressources (CPU, RAM, Disque) entre les
frameworks et leur fait des « resource offer » (CPU : X, RAM : Y,
DISQUE : Y)
● Le framework a 2 composants : scheduler et executor
● Scheduler : s’inscrit sur le master pour recevoir des offres de
ressources
● Executor : exécuté sur l’agent par le master et lance les tâches du
framework
Mesos : concepts de base (2/2)
http://mesos.apache.org/documentation/latest/architecture/
Mesos : resource offer
http://mesos.apache.org/documentation/latest/architecture/
Services (vs tâches) ?
● Apache Aurora :
● http://aurora.apache.org/
Mesos & conteneurs ?
● Marathon : orchestration de conteneurs
https://github.com/mesosphere/marathon
● cgroups ou Docker
● DC/OS :
https://dcos.io/get-started/#marathon
● Google Kubernete :
● https://github.com/mesosphere/kubernetes-mesos
En résumé, SMACK c’est …
● Un ensemble de logiciels stables et Open Source
● Déploiement Cloud ou sur site
● Une plateforme unique pour adresser une multitudes de cas
d’utilisation pour des applications orientées vers le traitement
« temps réel » de large volume de données
● Scalabilité et réplication des données avec une faible latence
● Gestion unifiée du cluster
● Prototypage rapide et à moindre coût
Questions
@anguenot www.iland.com
http://slideshare.net/anguenot/

Weitere ähnliche Inhalte

Was ist angesagt?

Performance Optimizations in Apache Impala
Performance Optimizations in Apache ImpalaPerformance Optimizations in Apache Impala
Performance Optimizations in Apache Impala
Cloudera, Inc.
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
Jonathan Katz
 

Was ist angesagt? (20)

Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Rds data lake @ Robinhood
Rds data lake @ Robinhood Rds data lake @ Robinhood
Rds data lake @ Robinhood
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
Apache Spark on K8S Best Practice and Performance in the Cloud
Apache Spark on K8S Best Practice and Performance in the CloudApache Spark on K8S Best Practice and Performance in the Cloud
Apache Spark on K8S Best Practice and Performance in the Cloud
 
Integrating Apache Spark and NiFi for Data Lakes
Integrating Apache Spark and NiFi for Data LakesIntegrating Apache Spark and NiFi for Data Lakes
Integrating Apache Spark and NiFi for Data Lakes
 
HDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon KimHDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon Kim
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
Delta lake and the delta architecture
Delta lake and the delta architectureDelta lake and the delta architecture
Delta lake and the delta architecture
 
Big Data Security in Apache Projects by Gidon Gershinsky
Big Data Security in Apache Projects by Gidon GershinskyBig Data Security in Apache Projects by Gidon Gershinsky
Big Data Security in Apache Projects by Gidon Gershinsky
 
Spark - An In-Memory Distributed Computing Engine.pptx
Spark - An In-Memory Distributed Computing Engine.pptxSpark - An In-Memory Distributed Computing Engine.pptx
Spark - An In-Memory Distributed Computing Engine.pptx
 
Performance Optimizations in Apache Impala
Performance Optimizations in Apache ImpalaPerformance Optimizations in Apache Impala
Performance Optimizations in Apache Impala
 
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and HudiHow to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
 
Spark Summit EU talk by Mike Percy
Spark Summit EU talk by Mike PercySpark Summit EU talk by Mike Percy
Spark Summit EU talk by Mike Percy
 
Introduction au big data
Introduction au big dataIntroduction au big data
Introduction au big data
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
 
Introduction to Apache Kudu
Introduction to Apache KuduIntroduction to Apache Kudu
Introduction to Apache Kudu
 
Cloud Native PostgreSQL
Cloud Native PostgreSQLCloud Native PostgreSQL
Cloud Native PostgreSQL
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
 
Quand utiliser MongoDB … Et quand vous en passer…
Quand utiliser MongoDB	… Et quand vous en passer…Quand utiliser MongoDB	… Et quand vous en passer…
Quand utiliser MongoDB … Et quand vous en passer…
 

Andere mochten auch

Andere mochten auch (20)

Data processing platforms architectures with Spark, Mesos, Akka, Cassandra an...
Data processing platforms architectures with Spark, Mesos, Akka, Cassandra an...Data processing platforms architectures with Spark, Mesos, Akka, Cassandra an...
Data processing platforms architectures with Spark, Mesos, Akka, Cassandra an...
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena EdelsonStreaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
 
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
 
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsLeveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
 
SMACK Stack 1.1
SMACK Stack 1.1SMACK Stack 1.1
SMACK Stack 1.1
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internals
 
Webinar - How to Build Data Pipelines for Real-Time Applications with SMACK &...
Webinar - How to Build Data Pipelines for Real-Time Applications with SMACK &...Webinar - How to Build Data Pipelines for Real-Time Applications with SMACK &...
Webinar - How to Build Data Pipelines for Real-Time Applications with SMACK &...
 
Laying down the smack on your data pipelines
Laying down the smack on your data pipelinesLaying down the smack on your data pipelines
Laying down the smack on your data pipelines
 
Kick-Start with SMACK Stack
Kick-Start with SMACK StackKick-Start with SMACK Stack
Kick-Start with SMACK Stack
 
Sa introduction to big data pipelining with cassandra & spark west mins...
Sa introduction to big data pipelining with cassandra & spark   west mins...Sa introduction to big data pipelining with cassandra & spark   west mins...
Sa introduction to big data pipelining with cassandra & spark west mins...
 
Real-Time Anomaly Detection with Spark MLlib, Akka and Cassandra
Real-Time Anomaly Detection  with Spark MLlib, Akka and  CassandraReal-Time Anomaly Detection  with Spark MLlib, Akka and  Cassandra
Real-Time Anomaly Detection with Spark MLlib, Akka and Cassandra
 
Reactive dashboard’s using apache spark
Reactive dashboard’s using apache sparkReactive dashboard’s using apache spark
Reactive dashboard’s using apache spark
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and AkkaStreaming Analytics with Spark, Kafka, Cassandra and Akka
Streaming Analytics with Spark, Kafka, Cassandra and Akka
 
[若渴計畫2015.8.18] SMACK
[若渴計畫2015.8.18] SMACK[若渴計畫2015.8.18] SMACK
[若渴計畫2015.8.18] SMACK
 
Hundreds of queries in the time of one - Gianmario Spacagna
Hundreds of queries in the time of one - Gianmario SpacagnaHundreds of queries in the time of one - Gianmario Spacagna
Hundreds of queries in the time of one - Gianmario Spacagna
 
Apache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentialsApache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentials
 
Big Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostBig Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez Chronopost
 
eBay Experimentation Platform on Hadoop
eBay Experimentation Platform on HadoopeBay Experimentation Platform on Hadoop
eBay Experimentation Platform on Hadoop
 
Apache phoenix: Past, Present and Future of SQL over HBAse
Apache phoenix: Past, Present and Future of SQL over HBAseApache phoenix: Past, Present and Future of SQL over HBAse
Apache phoenix: Past, Present and Future of SQL over HBAse
 
Cassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentialsCassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentials
 

Ähnlich wie Architecture Big Data open source S.M.A.C.K

Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesos
ebiznext
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
PALO IT
 

Ähnlich wie Architecture Big Data open source S.M.A.C.K (20)

Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark Streaming
 
Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesos
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big data
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure PackLe cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
 
Inf208
Inf208Inf208
Inf208
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
 

Architecture Big Data open source S.M.A.C.K

  • 1. Architecture « Big Data » Open Source SMACK
  • 2. Julien Anguenot VP Software Engineering, iland cloud Datastax MVP for Apache Cassandra
  • 4. Les challenges du Big Data ● Sources multiples de données (internes / externes) ● Taille des données augmente ● Scalabilité et disponibilité ● Les systèmes doivent être distribués (multi-datacenters) ● Hybride (Cloud et sur site) ● Traitement dynamique des données (donnée à un temps « t ») ● Chaîne de traitement de données (pipeline) ● Gestion de systèmes complexes (clusters) distribués ● Coût (technologique et humain)
  • 5. S.M.A.C.K ● Spark (moteur) ● Mesos (conteneur) ● Akka (modèle) ● Cassandra (stockage) ● Kafka  (agent de message)
  • 7.
  • 8. Kafka ● https://kakfa.apache.org ● Système de messaging distribué ● Publication – Abonnement (« pub-sub ») ● Rapide, durable, évolutif, performant, faible latence ● Développé par Linkedin ● Apache Foundation
  • 9. Kafka : cas d’utilisation ● Agrégation de logs ● Files d’attente ● Monitoring ● Traitement « temps réel »
  • 10. Kafka : APIs core (1/2) ● API « producer »  ● API « consumer » ● API « stream » ● API « connector » https://kafka.apache.org/intro
  • 11. Kafka : APIs core (2/2) ● API « producer » : publication de données vers un ou plusieurs brokers (topics)  ● API « consumer » : abonnement et récupération de données depuis un ou plusieurs brokers ● API « stream » application consomme des données depuis 1 ou plusieurs topics et publient en sortie sur un ou plusieurs topics. (Processing et transformation) ● API « connector » composants extensibles réutilisables (Akka Stream par exemple)
  • 12. Kafka : concepts de base (1/2) ● Les producteurs publient des données vers les brokers ● Les consommateurs s’abonnent et récupèrent les données depuis les brokers
  • 13. Kafka : concepts de base (2/2) ● Kafka tourne en mode cluster ● Le cluster stocke des « streams » de données dans des topics ● Les topics sont divisés en partitions et répliqués fonction du facteur de réplication. (configurable) ● Chaque enregistrement contient : clef, valeur et timestamp
  • 14. Kafka : les garanties ● Les messages sont ordonnés dans l’ordre dans lequel ils sont envoyés par le producteur ● Les consommateurs reçoivent les messages dans l’ordre dans lequel ils sont insérés par le producteur dans le log ● Les messages sont délivrés au moins 1x ● Si RF = N, N-1 pannes serveurs sans perde de messages commîtes
  • 15. Cassandra ● Base de données distribuée « orientée colonnes » ● Google Big Table (modèle de données) ● Amazon's Dynamo (architecture distribuées) ● Réplication multi data-center native (Cloud et sur site) ● Fini le sharding ● Faible latence en écriture ● Large volume de données ● Élasticité : scalabilité linéaire ● Haute dispo : Pas de master / slave == pas de SPOF ● http://cassandra.apache.org/
  • 16. Pourquoi utiliser Cassandra ? ● Déploiements massifs ● Beaucoup d’écritures ● Application distribuée géographiquement ● Application a besoin d’évoluer
  • 18. Comment ça marche ? ● Écriture séquentielle dans un commit log (fichier) ● Indexation et écriture en mémoire dans des memtables ● Sérialisation des données sur disque dans des SSTables ● Les données sont alors partitionnées et répliquer automatiquement dans le cluster ● SSTables sont consolidées (fonction de la stratégie) par des compactions et nettoie les tombsones ● Les repairs garantissent la consistance du cluster
  • 19. Cassandra : l’abstraction ● Cluster ● Data-center ● Racks ● Serveurs (l’instance Cassandra) ● Vnodes (Abstraction de stockage)
  • 20. Cassandra : modèle de données ● Keyspace ● Table ● Primary Key ● Index
  • 21. Cassandra : CQL ● Cassandra Query Language (CQL) ● Remplace Thrift ● CQL ressemble à du SQL ● DDL (CREATE, ALTER, DROP) ● DML (INSERT, UPDATE, DELETE, TRUNCATE) ● Query (SELECT) ● Types assez riches et similaires à SQL ● Drivers et cqlsh
  • 22. lectures ● Dynamo: Amazon’s Highly Distributed Key-Value Store:) http://www.allthingsdistributed.com/2007/10/amazons_ dynamo.html ● Brewer's CAP theorem : https://fenix.tecnico.ulisboa.pt/downloadFile/11265183 82178117/10.e-CAP-3.pdf
  • 23. Spark ● Moteur générique performant pour larges sources de données distribuées ● Framework complet et unifié (type de données et sources de données) ● MapReduce ++ ● Utilisation mémoire et CPU vs disque et réseau (Hadoop) ● Java, Scala, Python, Closure et R ● https://spark.apache.org/
  • 25. Spark : l’écosystème ● Spark Streaming : traitement temps-réel des données en flux (Dstream, RDD (Resilient Distributed Dataset) ● Spark SQL : expose des données Spark par API JDBC – SQL, BI etc. - données extraite en JSON, Parquet, etc. ● Spark Mlib : bibliothèque de machine learning – classification, regression, clustering, reduction etc. ● Spark GraphX : API pour traitement graphs – extensions des RDD
  • 26. En particulier ● Spark Cassandra Connector : https://github.com/datastax/spark-cassandra-con nector ● Spark Streaming + Kafka : http://spark.apache.org/docs/latest/streaming-kaf ka-0-10-integration.html
  • 27. Spark : les jobs ● Standalone ● Mesos ● YARN
  • 28. Spark & Hadoop ● Spark ne remplace pas Hadoop ● Spark et Hadoop fonctionne très bien ensemble ● Hadoop peut être utiliser comme stockage de données distribuées (vs Cassandra) ● Spark beaucoup plus rapide que Hadoop pour les traitement en mémoire ● « fast-data> vs « slow-data »
  • 29. Akka ● http://akka.io/ ● Toolkit et runtime pour applications concurrentes, distribuées, résilientes et « event-driven » sur JVM ● Java & Scala : bibliothèque (JAR) ou natif SBT ● Reactive manifesto : http://www.reactivemanifesto.org/ ● « Actor model » ● http://akka.io/
  • 30. « Actor model » ● Distribué ● Parallèle ● Async ● « Non-blocking » ● Tolérant à la panne : superviseur et « let it crash » sémantique ● Le système peut tourner en multi-JVM ● Changements d’état du système peuvent être sauvegardés ● Peu de place en HEP pour des millions d’acteurs
  • 31. Akka et Kafka ● Akka Streams : Kafka « Connector » http://doc.akka.io/docs/akka-stream-and-http-experiment al/current/ ● Reactive Kafka : https://github.com/softwaremill/reactive-kafka
  • 32. Mesos ● Gestion de cluster pour environnements distribués ● Abstraction (Physique, VM, Conteneur Docker) et unification de l’ensemble des ressources : CPU, mémoire, disque ● Allocation dynamique de ressources ● Gestion de l’exécution des tâches ● Isolation des ressources ● Tolérant à la panne ● Optimisation des ressources et des coûts ● http://mesos.apache.org/
  • 33. Google « Borg » ● Google « Borg » white paper : http://research.google.com/pubs/pub43438. html ● Site Reliability Engineering - How Google Runs Production Systems : http://shop.oreilly.com/product/0636920041 528.do
  • 34. Mesos : concepts de base (1/2) ● Le master daemon gère des agents (slaves) qui tournent sur chaque nœuds du cluster ● Le master gère le partage des ressources (CPU, RAM, Disque) entre les frameworks et leur fait des « resource offer » (CPU : X, RAM : Y, DISQUE : Y) ● Le framework a 2 composants : scheduler et executor ● Scheduler : s’inscrit sur le master pour recevoir des offres de ressources ● Executor : exécuté sur l’agent par le master et lance les tâches du framework
  • 35. Mesos : concepts de base (2/2) http://mesos.apache.org/documentation/latest/architecture/
  • 37. Services (vs tâches) ? ● Apache Aurora : ● http://aurora.apache.org/
  • 38. Mesos & conteneurs ? ● Marathon : orchestration de conteneurs https://github.com/mesosphere/marathon ● cgroups ou Docker ● DC/OS : https://dcos.io/get-started/#marathon ● Google Kubernete : ● https://github.com/mesosphere/kubernetes-mesos
  • 39. En résumé, SMACK c’est … ● Un ensemble de logiciels stables et Open Source ● Déploiement Cloud ou sur site ● Une plateforme unique pour adresser une multitudes de cas d’utilisation pour des applications orientées vers le traitement « temps réel » de large volume de données ● Scalabilité et réplication des données avec une faible latence ● Gestion unifiée du cluster ● Prototypage rapide et à moindre coût