SlideShare a Scribd company logo
1 of 40
Download to read offline
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/

More Related Content

What's hot

What's hot (20)

In-memory Databases
In-memory DatabasesIn-memory Databases
In-memory Databases
 
Udemyfor businesscourselist
Udemyfor businesscourselistUdemyfor businesscourselist
Udemyfor businesscourselist
 
Real time data quality on Flink
Real time data quality on FlinkReal time data quality on Flink
Real time data quality on Flink
 
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
 
Building a Virtual Data Lake with Apache Arrow
Building a Virtual Data Lake with Apache ArrowBuilding a Virtual Data Lake with Apache Arrow
Building a Virtual Data Lake with Apache Arrow
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
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
 
Emr spark tuning demystified
Emr spark tuning demystifiedEmr spark tuning demystified
Emr spark tuning demystified
 
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
 
주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
 
Apache BookKeeper: A High Performance and Low Latency Storage Service
Apache BookKeeper: A High Performance and Low Latency Storage ServiceApache BookKeeper: A High Performance and Low Latency Storage Service
Apache BookKeeper: A High Performance and Low Latency Storage Service
 
Apache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan FlonenkoApache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan Flonenko
 
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, UberDemystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
 
Docker Architecture (v1.3)
Docker Architecture (v1.3)Docker Architecture (v1.3)
Docker Architecture (v1.3)
 
Memory access tracing [poug17]
Memory access tracing [poug17]Memory access tracing [poug17]
Memory access tracing [poug17]
 
Introduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceIntroduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a Service
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
Pegasus KV Storage, Let the Users focus on their work (2018/07)
Pegasus KV Storage, Let the Users focus on their work (2018/07)Pegasus KV Storage, Let the Users focus on their work (2018/07)
Pegasus KV Storage, Let the Users focus on their work (2018/07)
 
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
 

Viewers also liked

Viewers also liked (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
 

Similar to 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
 

Similar to 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
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
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
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
 
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
 

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