SlideShare une entreprise Scribd logo
1  sur  6
Comparaison entre outils de traitements distribués
1
Applications
supportées
Spark Celery Storm Pig Hive
Requêtes SQL OUI (SparkSQL) OUI (Pandas Dataframe) OUI (Storm SQL) OUI (Pig Latin) OUI (HiveQL)
Traitement de flux (streaming) OUI (SparkStreaming) NON OUI (temps réel) NON NON
Apprentissage, Système de
prise de décision
OUI (SparkMLlib) NON OUI (SAMOA) NON NON
Traitement graphique et
algorithmes graphiques
OUI (SparkGraphX) NON NON NON NON
Extraction/transformation/char
gement (ETL)
OUI OUI OUI OUI OUI
Temps de latence Faible Moyenne Faible Moyenne (MapReduce) Moyenne (MapReduce)
Appel de procédures à
distance distribuées
NON NON OUI NON NON
Accélération à l’aide de GPU OUI OUI NON NON NON
Traitements de type Batch OUI OUI OUI (Micro-batch) OUI NON
Gestion de données
distribuées aux workers
Automatique à l’aide de RDDs
Manuelle (lire des données à partir
de sources de données)
Manuel (lire des données à partir
de sources de données)
Automatique (HDFS) Automatique (HDFS)
Volumétrie de données Gros Moyenne Gros Gros Gros
Autonome OUI (en mode Standalone) NON (dépendant Broker) NON (cluster Zookeeper) NON (cluster Hadoop) NON (cluster Hadoop)
Apache Spark
• Tout calcul en mémoire
– Pros: les traitements qui ont besoin de la vitesse
– Cons: les besoins en mémoire doivent être pris en compte
• Données distribuées RDD (Resilient Distributed Datasets)
– Pros: gérer et optimiser les partitions de données distribuées aux machines de travail d’une approche paresseuse
– Cons: une augmentation significative de la latence afin de préparer les données distribuées
• Types de données supportés
– Traiter les données structurées avec Spark SQL
– Traiter les données issues de graphes (nœuds, arrêtes) grâce à Spark Graph X
– Traiter les données non-structurées avec ses fonctions Map(), Filter(), Reduce() sur RDD
• Tolérance
– tolérance aux pannes basée sur les informations de lignage (un arbre des transformations et actions DAG)
– Une répartition perdue va être recalculée à partir d’une RDD originale
• Modèle de déploiement
– Propre mécanisme de clusterisation (en mode Standalone) ou pouvoir l’intégrer à un cluster Hadoop
• Langages de programmation supportés
– Java, Python, Scala, R
• Cas d’utilisation
– Traitement une grande quantité de données de type Batch
– Traitement de flux en temps réel (Spark Streaming)
– Utilisation de Spark pour l'analyse avancée des données et la science des données
• Apprentissage automatique (Spark MLlib)
• Algorithmes itératifs grâce à la mécanisme de cacher les résultats intermédiaires (aux nœuds de DAG)
• Analyse interactive des données grâce à la mode Spark Shell
• Inconvénients
– Les besoins de mémoire vivant doivent être pris en compte
– Latence significative
- 00/00/00 - Pied de page (titre ou
service…)
Page 2
Celery
• Traitement en mode asynchrone
– File d’attente de tâches distribuées
– Rendre l’interface utilisateur plus réactive sans attente
• Transmission de données aux machines de travail (workers):
– Il faut avoir en quelque sorte transférer de manière indépendante les données à la machine de travail d’abord, puis d’exécuter
le code à traiter ces données
• Flexible:
– Programmable de répartition des calculs
– Repartir les données à traiter sur chaque worker
• Modèle de déploiement:
– Broker (ex: Redis, RabitMQ)
• Tolérance
– Une tâche est gardée dans la liste d’attente jusqu’à elle est finie avec succès par un worker
– Si un worker est en panne, ses tâches seront récupérées par un ou des autres workers actifs.
• Langages de programmation supportés
– Python
• Cas d’utilisation
– Lancer une tâche en arrière-plan. Par exemple, pour terminer la requête Web dès que possible, mettre à jour la page des
utilisateurs de manière incrémentielle
– Traitement une grande quantité de données de type Batch
– Traitement en temps réel
• Inconvénients
– Seul Python est supporté comme langage de programmation
– Non autonome de déploiement
- 00/00/00 - Pied de page (titre ou
service…)
Page 3
Apache Storm
• Calculs en temps réel distribué et tolérant aux pannes de flux de données
– Latence faible: il peut traiter 100 messages par second par noeud
– Fiable: il garantit que chaque unité de données sera exécutée au moins une fois ou exactement une fois.
• Conception:
– Nimbus - ordonnanceur de tâches sur le cluster: analyser et distribuer les tâches aux superviseurs
– Superviseurs: lancer et surveiller les workers
– Workers: sont des machines de travail qui eux-mêmes exécutent des tâches sur les messages reçus, à l’infini. Une tâche est
un enchaînement d’unités de travail (une topologie Storm) sous forme d’un graphe orienté acyclique (DAG) qui se compose
des spouts et des bolts:
• Spout: c’est le point d’entrée du flux d’information, l’endroit par lequel les données arrivent. Les spouts ont donc pour
rôle de se connecter à une source de données
• Bolt: c’est un nœud de traitement des données fournies par le Spout. C’est ici qu’on fait des manipulations sur les
données telles que des filtres, des jointures, des agrégations.
• La communication entre spouts et bolts se fait sous forme de tuple – une structure de données dans Storm.
• Stream: est une séquence de tuples qui circule dans une topologie
• Tolérance
– Pas un point unique de défaillance SPOF
– Si un worker est mort, son superviseur va le redémarrer. Si le superviseur est mort, il s’est redémarrera en récupérant ses
statuts sauvegardés dans Zookepper.
• Modèle de déploiement:
– Cluster Zookeeper
• Cas d’utilisation
– Traitement de flux de données ou d’information en continue
– L’appel de procédures à distance distribuées (PRC)
– Les fonctions d’extraction/transformation/chargement (ETL)
• Inconvénients
– Impossible d’exécuter des tâches planifiées
- 00/00/00 - Pied de page (titre ou
service…)
Page 4
Apache Pig
• Modèle de développement plus haute niveau pour écrire de traitements MapReduce
– Auto-générer des tâches Hadoop Map-Reduce à partir des requêtes similaire SQL sur des données non structurées
– MapReduce est un modèle de calcul massivement parallèle sur de données massives
– Programme en le langage procédural Pig Latin
– Créé chez Yahoo
• Pig Latin
– Un langage de haute niveau orienté traitement par flux de données, axé sur le traitement parallèle
– Simple, efficace, proche du scripting
– Fournit les opérations standards pour la manipulation de données (filters, joins, ordering), des types primitifs, des types
complexe (tuples, bags, maps)
– Déclare le plan d’exécution
– Il ouvre Hadoop au non-programmeur-java
• Pig Engine
– Un moteur d’exécution au sommet de Hadoop
– Parse, optimise et exécute automatiquement les scripts PigLatin comme une série de jobs MapReduce au sein d’un cluster
Hadoop
• Modèle de déployment
– Cluster Hadoop
• Cas d’utilisation
– C'est particulièrement bon si l’on a accès à un cluster Hadoop qui existe déjà
– Les fonctions d’extraction/transformation/chargement (ETL)
– Développement d’un programme d’analyser un volume important de données
• Inconvénients
– Pas mature, il est encore dans la phase de développement
– Besoin d’apprendre la syntaxe Pig Latin
- 00/00/00 - Pied de page (titre ou
service…)
Page 5
Apache Hive
• Une plateforme haute niveau pour la création de programme MapReduce
– Auto-générer des tâches Hadoop MapReduce à partir des requêtes HQL sur les données structurées
– Une infrastructure pour Entrepôt de données (Data Warehouse)
– Créé chez Facebook
• Langage HiveQL
– Syntaxe similaire à celle du SQL avec un schéma relationnel
– Support DDL (Data Definition Language - Create, Alter, Drop): par exemple création de tables avec la commande CREATE TABLE ..
– DML (Data Manipulation Language - Load, Insert, Select) : par exemple chargement de données depuis HDFS avec la commande LOAD DATA…
– Fonction utilisateurs
– Appel à des programmes externe MapReduce
• Conception
– Stock ses données dans HDFS
– Charger et convertir HDSF en un entrepôt de données et agit comme un dialecte SQL
– Compile des requêtes HiveQL en plan qui constitue une suite de DAG de jobs MapReduce et les exécute sur le cluster Hadoop
• Modèle de déployment
– Cluster Hadoop
• Cas d’utilisation
– C'est particulièrement bon si l’on a accès à un cluster Hadoop qui existe déjà.
– Créer des rapports
– Analyser un volume important de données structurées par des data scientistes en langage HQL
• Inconvénients
– La mise à jour des données est compliquée
– Pas d’accès en temps réel aux données
– Latence significative
- 00/00/00 - Pied de page (titre ou
service…)
Page 6

Contenu connexe

Tendances

Spark Streaming
Spark StreamingSpark Streaming
Spark StreamingPALO IT
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Les bibliothèques de calcul scientifiques
Les bibliothèques de calcul scientifiquesLes bibliothèques de calcul scientifiques
Les bibliothèques de calcul scientifiquesKhaled Fayala
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Alexis Seigneurin
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KJulien Anguenot
 
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
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingVictor Coustenoble
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsMICHRAFY MUSTAFA
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6Amal Abid
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
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
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache ZookeeperMichaël Morello
 
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
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduceMathieu Dumoulin
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011Olivier BAZOUD
 

Tendances (20)

Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Introduction spark
Introduction sparkIntroduction spark
Introduction spark
 
Les bibliothèques de calcul scientifiques
Les bibliothèques de calcul scientifiquesLes bibliothèques de calcul scientifiques
Les bibliothèques de calcul scientifiques
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.K
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
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
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark Streaming
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
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
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache Zookeeper
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
 
REX Storm Redis
REX Storm RedisREX Storm Redis
REX Storm Redis
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduce
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011
 

Similaire à Presentation des outils traitements distribues

Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 
Sahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackSahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackALTIC Altic
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08Loïc Descotte
 
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaModern Data Stack France
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataArrow Group
 
Big Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinBig Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinPALO IT
 
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
 
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
 
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormApache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormParis_Storm_UG
 
160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptxmajdoulineaitabdelal
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessingPierre-Marie Brunet
 

Similaire à Presentation des outils traitements distribues (20)

Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Sahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackSahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStack
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Big Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinBig Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foin
 
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...
 
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
 
Hadoop
HadoopHadoop
Hadoop
 
Big sql4meetup
Big sql4meetupBig sql4meetup
Big sql4meetup
 
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormApache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
 
160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx160813-technology-template-16x9.pptx
160813-technology-template-16x9.pptx
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing
 

Plus de Lê Anh

Spark docker
Spark dockerSpark docker
Spark dockerLê Anh
 
Automatic vs. human question answering over multimedia meeting recordings
Automatic vs. human question answering over multimedia meeting recordingsAutomatic vs. human question answering over multimedia meeting recordings
Automatic vs. human question answering over multimedia meeting recordingsLê Anh
 
Lap trinh java hieu qua
Lap trinh java hieu quaLap trinh java hieu qua
Lap trinh java hieu quaLê Anh
 
Cahier de charges
Cahier de chargesCahier de charges
Cahier de chargesLê Anh
 
Final report. nguyen ngoc anh.01.07.2013
Final report. nguyen ngoc anh.01.07.2013Final report. nguyen ngoc anh.01.07.2013
Final report. nguyen ngoc anh.01.07.2013Lê Anh
 
Lequocanh
LequocanhLequocanh
LequocanhLê Anh
 
These lequocanh v7
These lequocanh v7These lequocanh v7
These lequocanh v7Lê Anh
 
Applying Computer Vision to Traffic Monitoring System in Vietnam
Applying Computer Vision to Traffic Monitoring System in Vietnam Applying Computer Vision to Traffic Monitoring System in Vietnam
Applying Computer Vision to Traffic Monitoring System in Vietnam Lê Anh
 
Poster WACAI 2012
Poster WACAI 2012Poster WACAI 2012
Poster WACAI 2012Lê Anh
 
ICMI 2012 Workshop on gesture and speech production
ICMI 2012 Workshop on gesture and speech productionICMI 2012 Workshop on gesture and speech production
ICMI 2012 Workshop on gesture and speech productionLê Anh
 
Lecture Notes in Computer Science (LNCS)
Lecture Notes in Computer Science (LNCS)Lecture Notes in Computer Science (LNCS)
Lecture Notes in Computer Science (LNCS)Lê Anh
 
IEEE Humanoids 2011
IEEE Humanoids 2011IEEE Humanoids 2011
IEEE Humanoids 2011Lê Anh
 
ACII 2011, USA
ACII 2011, USAACII 2011, USA
ACII 2011, USALê Anh
 
ACM ICMI Workshop 2012
ACM ICMI Workshop 2012ACM ICMI Workshop 2012
ACM ICMI Workshop 2012Lê Anh
 
Mid-term thesis report
Mid-term thesis reportMid-term thesis report
Mid-term thesis reportLê Anh
 
Affective Computing and Intelligent Interaction (ACII 2011)
Affective Computing and Intelligent Interaction (ACII 2011)Affective Computing and Intelligent Interaction (ACII 2011)
Affective Computing and Intelligent Interaction (ACII 2011)Lê Anh
 
Nao Tech Day
Nao Tech DayNao Tech Day
Nao Tech DayLê Anh
 
Journée Inter-GDR ISIS et Robotique: Interaction Homme-Robot
Journée Inter-GDR ISIS et Robotique: Interaction Homme-RobotJournée Inter-GDR ISIS et Robotique: Interaction Homme-Robot
Journée Inter-GDR ISIS et Robotique: Interaction Homme-RobotLê Anh
 
Người Ảo
Người ẢoNgười Ảo
Người ẢoLê Anh
 

Plus de Lê Anh (19)

Spark docker
Spark dockerSpark docker
Spark docker
 
Automatic vs. human question answering over multimedia meeting recordings
Automatic vs. human question answering over multimedia meeting recordingsAutomatic vs. human question answering over multimedia meeting recordings
Automatic vs. human question answering over multimedia meeting recordings
 
Lap trinh java hieu qua
Lap trinh java hieu quaLap trinh java hieu qua
Lap trinh java hieu qua
 
Cahier de charges
Cahier de chargesCahier de charges
Cahier de charges
 
Final report. nguyen ngoc anh.01.07.2013
Final report. nguyen ngoc anh.01.07.2013Final report. nguyen ngoc anh.01.07.2013
Final report. nguyen ngoc anh.01.07.2013
 
Lequocanh
LequocanhLequocanh
Lequocanh
 
These lequocanh v7
These lequocanh v7These lequocanh v7
These lequocanh v7
 
Applying Computer Vision to Traffic Monitoring System in Vietnam
Applying Computer Vision to Traffic Monitoring System in Vietnam Applying Computer Vision to Traffic Monitoring System in Vietnam
Applying Computer Vision to Traffic Monitoring System in Vietnam
 
Poster WACAI 2012
Poster WACAI 2012Poster WACAI 2012
Poster WACAI 2012
 
ICMI 2012 Workshop on gesture and speech production
ICMI 2012 Workshop on gesture and speech productionICMI 2012 Workshop on gesture and speech production
ICMI 2012 Workshop on gesture and speech production
 
Lecture Notes in Computer Science (LNCS)
Lecture Notes in Computer Science (LNCS)Lecture Notes in Computer Science (LNCS)
Lecture Notes in Computer Science (LNCS)
 
IEEE Humanoids 2011
IEEE Humanoids 2011IEEE Humanoids 2011
IEEE Humanoids 2011
 
ACII 2011, USA
ACII 2011, USAACII 2011, USA
ACII 2011, USA
 
ACM ICMI Workshop 2012
ACM ICMI Workshop 2012ACM ICMI Workshop 2012
ACM ICMI Workshop 2012
 
Mid-term thesis report
Mid-term thesis reportMid-term thesis report
Mid-term thesis report
 
Affective Computing and Intelligent Interaction (ACII 2011)
Affective Computing and Intelligent Interaction (ACII 2011)Affective Computing and Intelligent Interaction (ACII 2011)
Affective Computing and Intelligent Interaction (ACII 2011)
 
Nao Tech Day
Nao Tech DayNao Tech Day
Nao Tech Day
 
Journée Inter-GDR ISIS et Robotique: Interaction Homme-Robot
Journée Inter-GDR ISIS et Robotique: Interaction Homme-RobotJournée Inter-GDR ISIS et Robotique: Interaction Homme-Robot
Journée Inter-GDR ISIS et Robotique: Interaction Homme-Robot
 
Người Ảo
Người ẢoNgười Ảo
Người Ảo
 

Presentation des outils traitements distribues

  • 1. Comparaison entre outils de traitements distribués 1 Applications supportées Spark Celery Storm Pig Hive Requêtes SQL OUI (SparkSQL) OUI (Pandas Dataframe) OUI (Storm SQL) OUI (Pig Latin) OUI (HiveQL) Traitement de flux (streaming) OUI (SparkStreaming) NON OUI (temps réel) NON NON Apprentissage, Système de prise de décision OUI (SparkMLlib) NON OUI (SAMOA) NON NON Traitement graphique et algorithmes graphiques OUI (SparkGraphX) NON NON NON NON Extraction/transformation/char gement (ETL) OUI OUI OUI OUI OUI Temps de latence Faible Moyenne Faible Moyenne (MapReduce) Moyenne (MapReduce) Appel de procédures à distance distribuées NON NON OUI NON NON Accélération à l’aide de GPU OUI OUI NON NON NON Traitements de type Batch OUI OUI OUI (Micro-batch) OUI NON Gestion de données distribuées aux workers Automatique à l’aide de RDDs Manuelle (lire des données à partir de sources de données) Manuel (lire des données à partir de sources de données) Automatique (HDFS) Automatique (HDFS) Volumétrie de données Gros Moyenne Gros Gros Gros Autonome OUI (en mode Standalone) NON (dépendant Broker) NON (cluster Zookeeper) NON (cluster Hadoop) NON (cluster Hadoop)
  • 2. Apache Spark • Tout calcul en mémoire – Pros: les traitements qui ont besoin de la vitesse – Cons: les besoins en mémoire doivent être pris en compte • Données distribuées RDD (Resilient Distributed Datasets) – Pros: gérer et optimiser les partitions de données distribuées aux machines de travail d’une approche paresseuse – Cons: une augmentation significative de la latence afin de préparer les données distribuées • Types de données supportés – Traiter les données structurées avec Spark SQL – Traiter les données issues de graphes (nœuds, arrêtes) grâce à Spark Graph X – Traiter les données non-structurées avec ses fonctions Map(), Filter(), Reduce() sur RDD • Tolérance – tolérance aux pannes basée sur les informations de lignage (un arbre des transformations et actions DAG) – Une répartition perdue va être recalculée à partir d’une RDD originale • Modèle de déploiement – Propre mécanisme de clusterisation (en mode Standalone) ou pouvoir l’intégrer à un cluster Hadoop • Langages de programmation supportés – Java, Python, Scala, R • Cas d’utilisation – Traitement une grande quantité de données de type Batch – Traitement de flux en temps réel (Spark Streaming) – Utilisation de Spark pour l'analyse avancée des données et la science des données • Apprentissage automatique (Spark MLlib) • Algorithmes itératifs grâce à la mécanisme de cacher les résultats intermédiaires (aux nœuds de DAG) • Analyse interactive des données grâce à la mode Spark Shell • Inconvénients – Les besoins de mémoire vivant doivent être pris en compte – Latence significative - 00/00/00 - Pied de page (titre ou service…) Page 2
  • 3. Celery • Traitement en mode asynchrone – File d’attente de tâches distribuées – Rendre l’interface utilisateur plus réactive sans attente • Transmission de données aux machines de travail (workers): – Il faut avoir en quelque sorte transférer de manière indépendante les données à la machine de travail d’abord, puis d’exécuter le code à traiter ces données • Flexible: – Programmable de répartition des calculs – Repartir les données à traiter sur chaque worker • Modèle de déploiement: – Broker (ex: Redis, RabitMQ) • Tolérance – Une tâche est gardée dans la liste d’attente jusqu’à elle est finie avec succès par un worker – Si un worker est en panne, ses tâches seront récupérées par un ou des autres workers actifs. • Langages de programmation supportés – Python • Cas d’utilisation – Lancer une tâche en arrière-plan. Par exemple, pour terminer la requête Web dès que possible, mettre à jour la page des utilisateurs de manière incrémentielle – Traitement une grande quantité de données de type Batch – Traitement en temps réel • Inconvénients – Seul Python est supporté comme langage de programmation – Non autonome de déploiement - 00/00/00 - Pied de page (titre ou service…) Page 3
  • 4. Apache Storm • Calculs en temps réel distribué et tolérant aux pannes de flux de données – Latence faible: il peut traiter 100 messages par second par noeud – Fiable: il garantit que chaque unité de données sera exécutée au moins une fois ou exactement une fois. • Conception: – Nimbus - ordonnanceur de tâches sur le cluster: analyser et distribuer les tâches aux superviseurs – Superviseurs: lancer et surveiller les workers – Workers: sont des machines de travail qui eux-mêmes exécutent des tâches sur les messages reçus, à l’infini. Une tâche est un enchaînement d’unités de travail (une topologie Storm) sous forme d’un graphe orienté acyclique (DAG) qui se compose des spouts et des bolts: • Spout: c’est le point d’entrée du flux d’information, l’endroit par lequel les données arrivent. Les spouts ont donc pour rôle de se connecter à une source de données • Bolt: c’est un nœud de traitement des données fournies par le Spout. C’est ici qu’on fait des manipulations sur les données telles que des filtres, des jointures, des agrégations. • La communication entre spouts et bolts se fait sous forme de tuple – une structure de données dans Storm. • Stream: est une séquence de tuples qui circule dans une topologie • Tolérance – Pas un point unique de défaillance SPOF – Si un worker est mort, son superviseur va le redémarrer. Si le superviseur est mort, il s’est redémarrera en récupérant ses statuts sauvegardés dans Zookepper. • Modèle de déploiement: – Cluster Zookeeper • Cas d’utilisation – Traitement de flux de données ou d’information en continue – L’appel de procédures à distance distribuées (PRC) – Les fonctions d’extraction/transformation/chargement (ETL) • Inconvénients – Impossible d’exécuter des tâches planifiées - 00/00/00 - Pied de page (titre ou service…) Page 4
  • 5. Apache Pig • Modèle de développement plus haute niveau pour écrire de traitements MapReduce – Auto-générer des tâches Hadoop Map-Reduce à partir des requêtes similaire SQL sur des données non structurées – MapReduce est un modèle de calcul massivement parallèle sur de données massives – Programme en le langage procédural Pig Latin – Créé chez Yahoo • Pig Latin – Un langage de haute niveau orienté traitement par flux de données, axé sur le traitement parallèle – Simple, efficace, proche du scripting – Fournit les opérations standards pour la manipulation de données (filters, joins, ordering), des types primitifs, des types complexe (tuples, bags, maps) – Déclare le plan d’exécution – Il ouvre Hadoop au non-programmeur-java • Pig Engine – Un moteur d’exécution au sommet de Hadoop – Parse, optimise et exécute automatiquement les scripts PigLatin comme une série de jobs MapReduce au sein d’un cluster Hadoop • Modèle de déployment – Cluster Hadoop • Cas d’utilisation – C'est particulièrement bon si l’on a accès à un cluster Hadoop qui existe déjà – Les fonctions d’extraction/transformation/chargement (ETL) – Développement d’un programme d’analyser un volume important de données • Inconvénients – Pas mature, il est encore dans la phase de développement – Besoin d’apprendre la syntaxe Pig Latin - 00/00/00 - Pied de page (titre ou service…) Page 5
  • 6. Apache Hive • Une plateforme haute niveau pour la création de programme MapReduce – Auto-générer des tâches Hadoop MapReduce à partir des requêtes HQL sur les données structurées – Une infrastructure pour Entrepôt de données (Data Warehouse) – Créé chez Facebook • Langage HiveQL – Syntaxe similaire à celle du SQL avec un schéma relationnel – Support DDL (Data Definition Language - Create, Alter, Drop): par exemple création de tables avec la commande CREATE TABLE .. – DML (Data Manipulation Language - Load, Insert, Select) : par exemple chargement de données depuis HDFS avec la commande LOAD DATA… – Fonction utilisateurs – Appel à des programmes externe MapReduce • Conception – Stock ses données dans HDFS – Charger et convertir HDSF en un entrepôt de données et agit comme un dialecte SQL – Compile des requêtes HiveQL en plan qui constitue une suite de DAG de jobs MapReduce et les exécute sur le cluster Hadoop • Modèle de déployment – Cluster Hadoop • Cas d’utilisation – C'est particulièrement bon si l’on a accès à un cluster Hadoop qui existe déjà. – Créer des rapports – Analyser un volume important de données structurées par des data scientistes en langage HQL • Inconvénients – La mise à jour des données est compliquée – Pas d’accès en temps réel aux données – Latence significative - 00/00/00 - Pied de page (titre ou service…) Page 6

Notes de l'éditeur

  1. Les RDD sont immutables. C’est-à-dire pour obtenir une modification d'une RDD, il faut y appliquer une ou des transformations, qui retourneront une nouvelle RDD et la RDD originale restera inchangée.   Deux questions sont posées ici: 1. Est-ce qu'il y a une option "Inplace" pour modifier une RDD et récupérer cette RDD elle-même changée au lieu d'une nouvelle RDD? 2. Est-ce que Spark crée les nouvelles RDDs autant de fois que le nombre des transformations?   La réponse pour la première question est NON.   Pour la deux question, on peut prendre une exemple "Word Count" ci-dessous. Il y a trois transformation "flatMap", "map" et "reduceByKey" et une action "saveAsTextFile".   1. text_file = sc.textFile("hdfs://...")2. words = text_file.flatMap(lambda line: line.split(" ")) 3. pairs = words.map(lambda word: (word, 1)) \4. counts = pairs.reduceByKey(lambda a, b: a + b)5. counts.saveAsTextFile("hdfs://...") Jusqu'à ligne 4, il n'y a aucun calcul effectué mais une chaîne DAG de trois transformations est créée (Directed Acyclic Graph). Cette chaîne est une séquence de calculs à effectuer sur les données.   Une fois que l'action "saveAsTextFile" à ligne 5 est applée, toute la chaîne DAG sera calculée ensemble. C'est une mécanisme "lazy" de Spark pour optimiser le mémoire et les calculs. Cette mécanisme permet de créer une seule nouvelle RDD pour toutes les transformations. Le mémoire n'est pas donc multiplié 3 fois mais une fois pour les trois transformations.   Le résultat, c-a-d la nouvelle RDD, peut être stocké dans le mémoire cache. Dans l'avenir, si la même chaîne est exécutée encore une fois, le système cherchera tout d'abord dans le mémoire cache: s'il trouve le résultat, il le prendra, sinon, la chaîne sera recaculée à partir de la RDD originale. La cache des résultats est préconisée car une fois une RDD est cachée, elle est stockée dans le mémoire local de chaque worker. Il évite donc de récaculer et de réenvoyer les résultats par réseaux au worker.   La mécanisme "immutable" assure donc une tolérance aux pannes du système. Il peut récréer et récalculer son ensemble de données à partir des RDDs originales s'il trouve encore la chaîne DAG.