SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler 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/

Mais conteúdo relacionado

Mais procurados

Apache Tez: Accelerating Hadoop Query Processing
Apache Tez: Accelerating Hadoop Query Processing Apache Tez: Accelerating Hadoop Query Processing
Apache Tez: Accelerating Hadoop Query Processing DataWorks Summit
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
Bases de données réparties
Bases de données répartiesBases de données réparties
Bases de données répartiesAbdelouahed Abdou
 
What s new in spark 2.3 and spark 2.4
What s new in spark 2.3 and spark 2.4What s new in spark 2.3 and spark 2.4
What s new in spark 2.3 and spark 2.4DataWorks Summit
 
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational CacheUsing Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational CacheDremio Corporation
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase强 王
 
Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsSungMin OH
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Jeongkyu Shin
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsApache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsAnton Kirillov
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented DatabasesFabio Fumarola
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Alexis Seigneurin
 
Presto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything EnginePresto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything EngineDataWorks Summit
 

Mais procurados (20)

Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Apache Tez: Accelerating Hadoop Query Processing
Apache Tez: Accelerating Hadoop Query Processing Apache Tez: Accelerating Hadoop Query Processing
Apache Tez: Accelerating Hadoop Query Processing
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Bases de données réparties
Bases de données répartiesBases de données réparties
Bases de données réparties
 
What s new in spark 2.3 and spark 2.4
What s new in spark 2.3 and spark 2.4What s new in spark 2.3 and spark 2.4
What s new in spark 2.3 and spark 2.4
 
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational CacheUsing Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase
 
Apache Spark with Scala
Apache Spark with ScalaApache Spark with Scala
Apache Spark with Scala
 
Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloops
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsApache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & Internals
 
Apache hive
Apache hiveApache hive
Apache hive
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented Databases
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)
 
Flume vs. kafka
Flume vs. kafkaFlume vs. kafka
Flume vs. kafka
 
Presto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything EnginePresto: Optimizing Performance of SQL-on-Anything Engine
Presto: Optimizing Performance of SQL-on-Anything Engine
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
 
Introduction to Hadoop Administration
Introduction to Hadoop AdministrationIntroduction to Hadoop Administration
Introduction to Hadoop Administration
 

Destaque

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...Anton Kirillov
 
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 EdelsonSpark Summit
 
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...DataStax
 
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 analyticsJulien Anguenot
 
SMACK Stack 1.1
SMACK Stack 1.1SMACK Stack 1.1
SMACK Stack 1.1Joe Stein
 
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 internalsAnton Kirillov
 
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 &...DataStax
 
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 pipelinesPatrick McFadin
 
Kick-Start with SMACK Stack
Kick-Start with SMACK StackKick-Start with SMACK Stack
Kick-Start with SMACK StackKnoldus Inc.
 
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...Simon Ambridge
 
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 CassandraNatalino Busa
 
Reactive dashboard’s using apache spark
Reactive dashboard’s using apache sparkReactive dashboard’s using apache spark
Reactive dashboard’s using apache sparkRahul Kumar
 
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 AkkaHelena Edelson
 
[若渴計畫2015.8.18] SMACK
[若渴計畫2015.8.18] SMACK[若渴計畫2015.8.18] SMACK
[若渴計畫2015.8.18] SMACKAj MaChInE
 
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 SpacagnaSpark Summit
 
Apache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentialsApache Cassandra multi-datacenter essentials
Apache Cassandra multi-datacenter essentialsJulien Anguenot
 
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 ChronopostAlexander DEJANOVSKI
 
eBay Experimentation Platform on Hadoop
eBay Experimentation Platform on HadoopeBay Experimentation Platform on Hadoop
eBay Experimentation Platform on HadoopTony Ng
 
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 HBAseenissoz
 
Cassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentialsCassandra multi-datacenter operations essentials
Cassandra multi-datacenter operations essentialsJulien Anguenot
 

Destaque (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
 

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

Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingVictor Coustenoble
 
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 Mesosebiznext
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.xDr Hajji Hicham
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribuesLê Anh
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
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 TechdaysVictor Coustenoble
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
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.pptxAnass Nabil
 
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 performantALTIC Altic
 
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 webmediaMicrosoft
 
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...Microsoft Technet France
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptxmajdoulineaitabdelal
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big dataacogoluegnes
 
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...Modern Data Stack France
 
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 timeseriesXavier MARIN
 
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 PackMicrosoft Décideurs IT
 

Semelhante a 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
 
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
 

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