Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
Ce talk est un retour d’expérience sur la mise en œuvre de Spark et Streaming Spark. Nous aborderons :
La collecte des données à la volée dans l’application Web avec Akka
La séparation des producteurs et consommateurs avec Kafka
La transformation des données avec Spark et Streaming Spark
Le déploiement sur un cluster avec Apache Mesos
Cette étude porte sur la brique Spark SQL de la plateforme Apache Spark.
L'objectif est de présenter les concepts et les fonctionnalités de spark SQL.
Les points abordés sont :
- Architecture
- API de Spark SQL
- Opérations sur DataFrames/DataSets
- Opérations relatives au nettoyage de données
- Opérations de conversion (DataFrame, DataSet, Collection, RDD)
- Opérations relationnelles
Utiliser Hadoop en perl avec HadoopStreamingDavid Morel
How to use the HadoopStreaming class to work in Hadoop using perl (or any language, actually)
Presentation made for the French Perl Workshop 2012 in Strastbourg.
Spark, ou comment traiter des données à la vitesse de l'éclairAlexis Seigneurin
Spark fait partie de la nouvelle génération de frameworks de manipulation de données basés sur Hadoop. L’outil utilise agressivement la mémoire pour offrir des temps de traitement jusqu’à 100 fois plus rapides qu'Hadoop. Dans cette session, nous découvrirons les principes de traitement de données (notamment MapReduce) et les options mises à disposition pour monter un cluster (Zookeper, Mesos…). Nous ferons un point sur les différents modules proposés par le framework, et notamment sur Spark Streaming pour le traitement de données en flux continu.
Présentation jouée chez Ippon le 11 décembre 2014.
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Ippon
Ce talk est un retour d’expérience sur la mise en œuvre de Spark et Streaming Spark. Nous aborderons :
La collecte des données à la volée dans l’application Web avec Akka
La séparation des producteurs et consommateurs avec Kafka
La transformation des données avec Spark et Streaming Spark
Le déploiement sur un cluster avec Apache Mesos
Cette étude porte sur la brique Spark SQL de la plateforme Apache Spark.
L'objectif est de présenter les concepts et les fonctionnalités de spark SQL.
Les points abordés sont :
- Architecture
- API de Spark SQL
- Opérations sur DataFrames/DataSets
- Opérations relatives au nettoyage de données
- Opérations de conversion (DataFrame, DataSet, Collection, RDD)
- Opérations relationnelles
Utiliser Hadoop en perl avec HadoopStreamingDavid Morel
How to use the HadoopStreaming class to work in Hadoop using perl (or any language, actually)
Presentation made for the French Perl Workshop 2012 in Strastbourg.
Spark, ou comment traiter des données à la vitesse de l'éclairAlexis Seigneurin
Spark fait partie de la nouvelle génération de frameworks de manipulation de données basés sur Hadoop. L’outil utilise agressivement la mémoire pour offrir des temps de traitement jusqu’à 100 fois plus rapides qu'Hadoop. Dans cette session, nous découvrirons les principes de traitement de données (notamment MapReduce) et les options mises à disposition pour monter un cluster (Zookeper, Mesos…). Nous ferons un point sur les différents modules proposés par le framework, et notamment sur Spark Streaming pour le traitement de données en flux continu.
Présentation jouée chez Ippon le 11 décembre 2014.
Actuellement, on parle beaucoup de traitement en lots (batch) dans le monde du Big Data. Mais qu’en est-il du Streaming et du temps réel ? Beaucoup de frameworks Big Data tentent de répondre à cette problématique. En tête de liste figure Spark : grâce à son composant Spark Streaming, il permet un traitement en continu des flux de données et une disponibilité 24/7.
Au programme :
- Streaming et Architecture Big Data
- Hello world Spark Streaming
- Intégration de Flume à Spark Streaming
- Use case “métriques sur des logs applicatifs”
- Architecture physique : driver / workers / receivers
- Monitoring de Spark Streaming
- Fail over : reliable / unreliable sources, checkpoint, recover
- Tuning et performance.
Speakers :
- Nadhem LAMTI, Architecte Technique chez PALO IT
Depuis 10 ans, Nadhem intervient principalement sur des projets JAVA JEE de grande envergure dans différents secteurs (Télécommunication, Banque, Finance, Transports, Tourisme, etc.), développant ainsi une expertise polyvalente en abordant multiples technologies et architectures. Fort d’une expérience concluante en tant qu’Ingénieur Performance & Support, Nadhem est capable d’intervenir sur des problématiques de production liées à des systèmes d’informations complexes. Actuellement en mission chez Voyages SNCF, il contribue à un grand chantier Big Data de centralisation de logs et s’intéresse tout particulièrement au nouveau produit phare de traitement de données Apache Spark.
- Saâd-Eddine MALTI, Expert BDD chez Voyages SNCF
En poste depuis 10 ans chez Voyages SNCF, Saâd-Eddine intervient en tant qu’Expert BDD sur toutes les applications de manière transverse. L’orientation affichée de Voyages SNCF vers le Big Data pousse Saâd-Eddine à s’investir pleinement dans ce domaine, également sur le nouveau produit phare de traitement de données Apache Spark.
Pour accéder aux fichiers nécessaires pour faire ce TP, visitez: https://drive.google.com/folderview?id=0Bz7DokLRQvx7M2JWZEt1VHdwSE0&usp=sharing
Pour plus de contenu, Visitez http://liliasfaxi.wix.com/liliasfaxi !
S.M.A.C.K, Spark-Mesos-Akka-Cassandra-Kafka, fait partie des nouvelles générations d’architectures “BigData” open source proposant une alternative et / ou une complémentarité à Hadoop / Map-Reduce.
À la différence the Hadoop / Map-Reduce qui fournit une architecture permettant de paralléliser les I/O disque et réseau, S.M.A.C.K utilise d’avantage la mémoire ce qui permet de libérer les CPUs des tâches de I/O et ainsi augmenter les capacités de calcul pour un même cluster. L’architecture S.M.A.C.K, et Spark en particulier, est particulièrement plébiscitée par la communauté autour de la Data Science.
Il s’agit d’une architecture ”BigData” très populaire qui se trouve être un assemblage de services spécialisés à la différence d’une solution unique implémentant une liste de patterns et principes ce qui lui apporte une grande flexibilité mais également une certaine complexité.
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
L'algorithme Map/Reduce et sa mise en oeuvre avec Apache Hadoop permettent de gérer de très grands volumes de données non structurées. Microsoft adopte Haddop sur Windows et Windows Azure. Venez voir comment.
Ce étude vise à présenter la platforme Spark et les opérations (Transformation et Action) d'une RDD. Les points abordés sont Spark motivation, Positionnement de Spark dans l'écosystème BigData, Composants de Spark, Drivers et Workers, RDD & caractéristiques, vue logique de spark, vue globale sur les APIs Spark (dépendance et interaction), les différentes opérations de spark. Chaque opération est sur une fiche (objectif, signature, "à retenir" et exemple de code).
CNES - CCT SIL - Traitement et Manipulation de la donnée à l‘aide des technologies Big Data
Présentation du 30 Juin 2017
Les CCT sont des espaces d'échanges techniques mis en place par le CNES il y a 20 ans, dans le but de réunir différents acteurs industriels et public pour s'enrichir mutuellement.
http://chtijug.org/session-spring-batch-avec-ekino-le-29-novembre/
Nous avons le plaisir de vous annoncer que la prochaine session du Ch’ti JUG est prévue le 29 novembre 2011. Elle aura lieu à l’IUT A de Lille 1, boulevard Paul Langevin, à Villeneuve d’Ascq. Plan d’accès
Le thème de cette session est Spring Batch : un framework pour implémenter des traitements de masse en Java.
Cette présentation sera animée par Olivier Bazoud / @obazoud et Julien Jakubowski / @jak78.
Cette session est rendue possible grâce à Ekino / @3k1no.
Actuellement, on parle beaucoup de traitement en lots (batch) dans le monde du Big Data. Mais qu’en est-il du Streaming et du temps réel ? Beaucoup de frameworks Big Data tentent de répondre à cette problématique. En tête de liste figure Spark : grâce à son composant Spark Streaming, il permet un traitement en continu des flux de données et une disponibilité 24/7.
Au programme :
- Streaming et Architecture Big Data
- Hello world Spark Streaming
- Intégration de Flume à Spark Streaming
- Use case “métriques sur des logs applicatifs”
- Architecture physique : driver / workers / receivers
- Monitoring de Spark Streaming
- Fail over : reliable / unreliable sources, checkpoint, recover
- Tuning et performance.
Speakers :
- Nadhem LAMTI, Architecte Technique chez PALO IT
Depuis 10 ans, Nadhem intervient principalement sur des projets JAVA JEE de grande envergure dans différents secteurs (Télécommunication, Banque, Finance, Transports, Tourisme, etc.), développant ainsi une expertise polyvalente en abordant multiples technologies et architectures. Fort d’une expérience concluante en tant qu’Ingénieur Performance & Support, Nadhem est capable d’intervenir sur des problématiques de production liées à des systèmes d’informations complexes. Actuellement en mission chez Voyages SNCF, il contribue à un grand chantier Big Data de centralisation de logs et s’intéresse tout particulièrement au nouveau produit phare de traitement de données Apache Spark.
- Saâd-Eddine MALTI, Expert BDD chez Voyages SNCF
En poste depuis 10 ans chez Voyages SNCF, Saâd-Eddine intervient en tant qu’Expert BDD sur toutes les applications de manière transverse. L’orientation affichée de Voyages SNCF vers le Big Data pousse Saâd-Eddine à s’investir pleinement dans ce domaine, également sur le nouveau produit phare de traitement de données Apache Spark.
Pour accéder aux fichiers nécessaires pour faire ce TP, visitez: https://drive.google.com/folderview?id=0Bz7DokLRQvx7M2JWZEt1VHdwSE0&usp=sharing
Pour plus de contenu, Visitez http://liliasfaxi.wix.com/liliasfaxi !
S.M.A.C.K, Spark-Mesos-Akka-Cassandra-Kafka, fait partie des nouvelles générations d’architectures “BigData” open source proposant une alternative et / ou une complémentarité à Hadoop / Map-Reduce.
À la différence the Hadoop / Map-Reduce qui fournit une architecture permettant de paralléliser les I/O disque et réseau, S.M.A.C.K utilise d’avantage la mémoire ce qui permet de libérer les CPUs des tâches de I/O et ainsi augmenter les capacités de calcul pour un même cluster. L’architecture S.M.A.C.K, et Spark en particulier, est particulièrement plébiscitée par la communauté autour de la Data Science.
Il s’agit d’une architecture ”BigData” très populaire qui se trouve être un assemblage de services spécialisés à la différence d’une solution unique implémentant une liste de patterns et principes ce qui lui apporte une grande flexibilité mais également une certaine complexité.
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
L'algorithme Map/Reduce et sa mise en oeuvre avec Apache Hadoop permettent de gérer de très grands volumes de données non structurées. Microsoft adopte Haddop sur Windows et Windows Azure. Venez voir comment.
Ce étude vise à présenter la platforme Spark et les opérations (Transformation et Action) d'une RDD. Les points abordés sont Spark motivation, Positionnement de Spark dans l'écosystème BigData, Composants de Spark, Drivers et Workers, RDD & caractéristiques, vue logique de spark, vue globale sur les APIs Spark (dépendance et interaction), les différentes opérations de spark. Chaque opération est sur une fiche (objectif, signature, "à retenir" et exemple de code).
CNES - CCT SIL - Traitement et Manipulation de la donnée à l‘aide des technologies Big Data
Présentation du 30 Juin 2017
Les CCT sont des espaces d'échanges techniques mis en place par le CNES il y a 20 ans, dans le but de réunir différents acteurs industriels et public pour s'enrichir mutuellement.
http://chtijug.org/session-spring-batch-avec-ekino-le-29-novembre/
Nous avons le plaisir de vous annoncer que la prochaine session du Ch’ti JUG est prévue le 29 novembre 2011. Elle aura lieu à l’IUT A de Lille 1, boulevard Paul Langevin, à Villeneuve d’Ascq. Plan d’accès
Le thème de cette session est Spring Batch : un framework pour implémenter des traitements de masse en Java.
Cette présentation sera animée par Olivier Bazoud / @obazoud et Julien Jakubowski / @jak78.
Cette session est rendue possible grâce à Ekino / @3k1no.
Sahara : Hadoop as Service avec OpenStackALTIC Altic
Un des initiative les plus intéressante du moment c'est Hadoop à la demande. Sahara, en incubation parmi les projets OpenStack facilite la mise en place de votre infrastructure moderne pour rester agile même dans une infrastructure qui réclame un nombre de machine toujours plus important...
présentation Solutions Linux 2014
Rapide introduction à Hadoop lors du lancement du Casablanca Hadoop & Big Data Meetup.
En partenariat avec Hortonworks
http://www.meetup.com/Casablanca-Hadoop-et-Big-Data-Meetup
Techday Arrow Group: Hadoop & le Big DataArrow Group
retrouvez notre techday sur Hadoop & le Big Data.
La Technologie Hadoop au coeur des
projets "Big Data".
Pour en savoir plus sur notre projet Square Predict:
http://www.square-solutions.com/accueil/square-predict-big-data-assurance/
Ce support explique les concepts de base de Big Data Processing. Elle aborde les parties suivantes :
Série de vidéos : https://www.youtube.com/watch?v=1JAljjxpm-Q
- Introduction au Big Data
- Système de stockage en Big Data
- Batch Processing et Stream Processing en Big Data
- Aperçu bref de l’écosystème de Hadoop
- Aperçu de l’écosystème des outils du Bid Gata
- Big data stream processing avec Kafka écosystème
- Architecture de Kafka (Brokers, Zookeeper, Procuder, Consumer, Kafka Streams, Connecteurs)
- Comment démarrer un cluster de brokers KAFKA
- Création et configuration des Topics
- Création d’un Java Kafka consumer
- Création d’un Java Kafka Produder
- Kafka Producer et Kafka Consumer dans une application basée sur Spring
- Kafka Streams
- Intégration de Kafka dans Spring Cloud.
Mot clés : Big data, Big Data Processing, Stream Processing, Kafka, Kafka Streams, Java, Spring
Bon apprentissage
Big Data ou comment retrouver une aiguille dans une botte de foinPALO IT
Un parc informatique d’un millier de machines génère de nombreux Terra Octets de logs. Comment parvenir à y retrouver une information pertinente et comment valoriser les informations contenues dans ces logs ?
Au programme :
- La centralisation des logs : back to basics;
- Cas pratiques : détection d’attaques DoS et refacturation sur plateforme mutualisée;
- Une grille Hadoop : en quoi ça consiste ?
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Modern Data Stack France
Hadoop User Group du lundi 6 oct 2014:
Talk #3: Administration Hadoop et retour d’expérience BI avec Impala, limites et recommandations par Abed Ajraou et Cherif Tifrani de Solocal (Pages Jaunes).
Hadoop est un framework 100% open source,écrit en Java et géré par la fondation Apache
Hadoop est capable de stocker et traiter de manière efficace un grand nombre de donnés, en reliant plusieurs serveurs banalisés entre eux pour travailler en parallèle
l'étendu big data et de l'intelligence artificielle.
l'écosystème qui englobe les différentes fonctionnalités.
les outils utilisés.
( Avec l'explosion des données et les avancées de l'apprentissage automatique, l'automatisation de la prise de décision est devenue une réalité prometteuse pour améliorer les différents secteurs d'activités.)
Présentation effectuée au Meetup 24 Programmez (5 Avril 2022) par Christophe Villeneuve sur "Infrastructure as code Drupal".
Cette présentation aborde les rappels de l'IaC (infrastructure as code), comment l'utilisé avec le CMS Drupal et déployé automatiquement le contenu et les évolutions dans l'IaC.
Automatic vs. human question answering over multimedia meeting recordingsLê Anh
Information access in meeting recordings can be assisted by
meeting browsers, or can be fully automated following a
question-answering (QA) approach. An information access task
is defined, aiming at discriminating true vs. false parallel statements
about facts in meetings. An automatic QA algorithm is
applied to this task, using passage retrieval over a meeting transcript.
The algorithm scores 59% accuracy for passage retrieval,
while random guessing is below 1%, but only scores 60% on
combined retrieval and question discrimination, for which humans
reach 70%–80% and the baseline is 50%. The algorithm
clearly outperforms humans for speed, at less than 1 second
per question, vs. 1.5–2 minutes per question for humans. The
degradation on ASR compared to manual transcripts still yields
lower but acceptable scores, especially for passage identification.
Automatic QA thus appears to be a promising enhancement
to meeting browsers used by humans, as an assistant for
relevant passage identification.
ICMI 2012 Workshop on gesture and speech productionLê Anh
In this slides, we present a common gesture speech framework for both virtual agents like ECA, IVA, VH and physical agents like humanoid robots. This framework is designed for different embodiments so that its processus are independent from a specific agent.
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
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.