0% ont trouvé ce document utile (0 vote)
881 vues10 pages

Introduction aux Big Data

Transféré par

Smaïl Ben
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
881 vues10 pages

Introduction aux Big Data

Transféré par

Smaïl Ben
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 01 : Introduction aux Big Data

● Data Science : C’est un domaine interdisciplinaire combinant les maths, les statistiques et
l’informatique, et qui permet à une entreprise d’explorer et d’analyser les données brutes pour les
transformer en informations précieuses permettant de résoudre les problèmes de l’entreprise.

« Data Science » : plutôt Math & Stats


« Big Data » : plutôt Informatique

● Big Data (mégadonnées) :


désigne un très grand volume de données souvent hétérogènes qui ont plusieurs formes
(texte, données de capteurs, son, vidéo, données sur le parcours, fichiers journaux) et
formats (données structurées, non structurées et semi-structurées).

représente les collections de données caractérisées par un volume, une vélocité et une
variété si grands que leur transformation en valeur utilisable requiert l’ utilisation de
technologies et de méthodes analytiques spécifiques.

Les 5V qui caractérisent le Big Data :


❖ Volume : La quantité de données
❖ Variété : type et nature de données
❖ Vélocité (Vitesse) : à quelle vitesse les données sont générées et traitées
❖ Véracité : la fiabilité des sources
❖ Valeur : dans quelle mesure les données sont exploitables

Pourquoi le Big Data ?


❖ Explosion de la disponibilité des données
(voir différence entre données structurées et données non structurées)
❖ Augmentation de la capacité de stockage
❖ Augmentation de la capacité d’analyse : les technologies existantes ne
permettent pas de traiter ces données (BDD relationnelles, Tableurs, ...) →
l’apparition de nouvelles technologies et techniques d’analyse avancées (Map
Reduce, Hadoop, …)
Le Big Data s’appuie sur quatre sources de données :
❖ Les logs (Historique des évènements) : Company data “not free” (données web /
données d'enquêtes / transactions financières, …)
❖ Open Data
❖ Réseaux sociaux & Médias : Analyse des commentaires, des sentiments à travers
des publications.
❖ Third Party Data : données des internautes récoltées via des formulaires ou des
cookies.
Exemples d’applications du Big Data :
❖ Data Analysis : pour examiner des comportements passés
❖ Data Analytics : pour anticiper le future et prendre des décisions
❖ L’analyse de signaux de sorties
❖ L’analyse des réseaux sociaux
❖ ……
Disciplines participants aux Big Data :
❖ Maths - Info : l’implémentation des maths, stats et probabilités sur machines
sous formes d’algorithmes d’apprentissage, de graphes, …
❖ Parallel computing (voir cours datacamp)
❖ Conception & exploitation des bases de données : donner un sens aux
données, guider son analyse et interpréter les résultats de ses algorithmes
❖ Domaines de l’activité de l’entreprise

Défis du Big Data :


❖ Gérer l’augmentation des données
❖ Générer des insights rapidement
❖ Recruter des talents du Big Data
❖ Intégrer des sources de Big Data diversifiées
❖ Sécuriser le Big Data

Data Scientist vs. Data Engineer :


Voir cours datacamp

Langages de programmation actuels du Big Data :


❖ Python / Java / C++ / C
❖ NoSQL

Chapitre 02 : Plateformes pour Big Data

1. Map Reduce (Traitement parallèle)


Le modèle traditionnel (serveur centralisé pour le stockage et le traitement des données) n’est
certainement pas adapté au traitement de gros volumes de données → Solution ? : Map
Reduce

● Définition du modèle Map Reduce : Le modèle de programmation MapReduce est l’un des
principaux composants du framework Hadoop. Il est utilisé pour accéder aux données Big Data
stockées au sein de Hadoop File System (HDFS), et conçu pour traiter plusieurs téraoctets de
données rapidement et de façon parallèle.
● Objectif : Faciliter la parallélisation des données, leur distribution et l’équilibrage de la charge.
● Pourquoi le Map Reduce ? parce que les données sont :
❖ volumineuses
❖ Variées
❖ Complexes
❖ Changent rapidement.
● Qui l’utilise ? Facebook, Amazon, LinkedIn, Google, Twitter, …
● Dans quel contexte l’utiliser ?
❖ Pour des données non structurées et sans schéma
❖ Pour de très grands clusters
❖ Traitement et analyse de type Batch
● L’architecture du modèle Map Reduce :
❖ Découper le fichier en plusieurs sous fichiers (de petites tailles)
❖ Mapper : génération des tuples <clé, valeur> pour chaque mot
❖ Mélange, Tri et Combinaison des clés
❖ Reduce (Final Result) : sommation des valeurs d’une même clé

● Avantages du Map Reduce


❖ Exécution parallèle des applications
❖ Solution économique pour le stockage (sous forme distribuée entre multiples serveurs) et le
traitement des données.
❖ La vitesse
● Applications du Map Reduce
❖ L’exploration de messages courts
❖ Les algorithmes génétiques, k-means, random forest, algorithme de clustering
❖ Système de transport intelligent
❖ Capteur mobile de données

2. Hadoop
Limites des RDBMS (ne permet pas de stocker les données non structurées et n’est pas non plus
adapté aux vastes volumes du Big Data) → Solution ? : Hadoop

● Définition de Hadoop
Hadoop est un framework logiciel dédié au stockage et au traitement de larges volumes de
données distribuées. Il s’agit d’un projet open source, sponsorisé par la fondation Apache Software
Foundation.

● Les 4 modules de Apache Hadoop


● Map Reduce :
➢ Aide les programmes à effectuer des calculs parallèles.
➢ Map → Convertit les données en paires <clés-valeurs>.
➢ Reduce → Consomme les données d’entrées, les incorpore et produit le résultat.
● HDFS (Hadoop Distributed File System) :
➢ Utilisé pour le stockage de données distribuées.
➢ Délivre une excellente élasticité.
➢ Possibilité de passer d’une machine unique à plusieurs milliers d’entre elles très
facilement.
● YARN (Yet Another Resource Negotiator):
➢ Négociateur de ressources.
➢ Permet de : planifier des tâches / gérer les ressources / surveiller les nœuds de
clusters et les autres ressources.

● Hadoop common :
➢ Utilise des bibliothèques Java standards entre chaque module

● Architecture de Hadoop

➢ Hadoop est basé sur une architecture maître-esclave


• Un seul NameNode (maître)
• Un ou plusieurs DataNodes (esclaves)
➢ Toute interaction du client commence par le NameNode

➢ Le client interagit directement avec DataNode pour les opérations write/read des blocks.
➢ Le client met les données dans un tampon localement pour diffuser (write/read).
➢ DataNode stocke les données en block de 128MB par défaut.
● Comment Hadoop permet le traitement du Big Data?
❖ L’utilisation de la capacité de stockage et de traitement distribué de clusters.
❖ Les applications peuvent collecter des données de différents formats et les stocker dans le
cluster Hadoop se connectant au NameNode.
❖ Le NameNode capture la structure du dossier de fichiers, et réplique des morceaux entre
les différents DataNodes pour le traitement parallèle.
❖ Les requêtes de données sont effectuées par MapReduce, qui répertorie aussi tous les
DataNodes et réduit les tâches liées aux données dans le HDFS.
❖ Les tâches Map sont effectuées sur chaque nœud, et les Reduce sont exécutés pour lier les
données et organiser le résultat final.

● Avantages de Hadoop
❖ Permet un stockage et traitement plus rapides et puissants des données volumineuses
(même des données non structurées).
❖ Disponible à moindre coût puisqu’il est en open source.
❖ L’élasticité : Il suffit de changer le nombre de nœuds dans un cluster pour étendre ou
réduire le système.
❖ Tolérant aux pannes et aux erreurs (Hadoop ne dépend pas du hardware pour préserver la
disponibilité des données).

● Points faibles
❖ L’algorithme Map Reduce n’est pas toujours adéquat ! (Il convient pour les requêtes
d’informations les plus simples, mais pas pour les tâches itératives + Il n’est pas non plus
efficace pour le calcul analytique avancé)
❖ Difficile à maîtriser.
❖ La sécurité des données.

● Applications de Hadoop
❖ Les institutions médicales peuvent utiliser Hadoop pour surveiller les données liées aux
problèmes de santé et aux résultats des traitements médicaux.
❖ Les traders et le monde de la finance utilisent aussi Hadoop : Son algorithme permet de
scanner les données de marché pour identifier des opportunités et des tendances
saisonnières.
❖ L’Internet of Things
❖ Le sport

● Comment Hadoop est-il utilisé en entreprise ?


❖ En identifiant les besoins et les attentes des clients en analysant le Big Data sur l'activité et
le comportement de l’entreprise.
❖ En proposant des offres personnalisées aux clients.
❖ Hadoop permet d’optimiser le processus de l’entreprise.

3. HDFS (Stockage parallèle)

● C’est quoi HDFS ?


C’est un module d’Apache Hadoop utilisé pour le stockage distribué dans un cluster Hadoop. Il est
conçu pour travailler sur des dispositifs peu coûteux, avec un système de fichiers distribué.

● Dans quel but l’utiliser ?


❖ Stocker des données dans un grand nombre de blocs plutôt que de stocker de petits blocs
de données.
❖ Il fournit une tolérance aux pannes et une haute disponibilité à la couche de stockage et
aux autres appareils présents dans le cluster Hadoop.
❖ Performant sur un matériel peu coûteux.
❖ Permet des accès rapides, y compris sur de larges collections de données.
❖ Conçu pour fonctionner sur une à plusieurs machines.

● Architecture de l’HDFS

● Avantages de l’HDFS
❖ Il est distribué sur des centaines/ milliers de serveurs, et chaque nœud stocke une partie du
fichier.
❖ Il permet d’éviter le risque de perte des données (chaque donnée est stockée à trois
❖ emplacements).
❖ Il est très efficace pour le traitement de flux de données.
❖ Plus qu’une base de données, HDFS se présente comme un Data Warehouse (voir la
différence entre Database & Data Warehouse).

4. YARN (Job scheduling and resource manager)

● Présentation de YARN
YARN est l’un des principaux composants d’Apache Hadoop. Il permet de gérer les ressources du
système et de planifier les tâches.

YARN a été introduit dans Hadoop 2.0


pour supprimer le goulot
d’étranglement présent dans Hadoop
1.0
● Caractéristiques de YARN
❖ Évolutivité (Scalability) : le planificateur du gestionnaire de ressources dans YARN permet
à Hadoop d’étendre et de gérer des milliers de nœuds et de clusters.
❖ Compatibilité : YARN prend en charge les applications Map Reduce existantes sans
interruption → compatible avec Hadoop 1.0.
❖ Utilisation du cluster : Vu que YARN supporte l’utilisation dynamique du cluster dans
Hadoop → utilisation optimisée du cluster.
❖ Multi-tenant : Il permet un accès à plusieurs moteurs → offre aux organisations un avantage
de multi-tenant.

● Architecture de Hadoop YARN

Resource Manager
↙ ↘
Scheduler Application Manager
(Planificateur) (Responsable de l’acceptation de l’application)

● Workflow d’application dans Hadoop YARN


1. Le client soumet une application
2. Le resource manager alloue un container pour démarrer l’application manager
3. L’application manager s’inscrit auprès du resource manager
4. Le resource manager négocie les containers du resource manager
5. Le resource manager demande au node manager de lancer des containers
6. Le code de l’application est exécuté dans le container
7. Le client contacte le resource manager/application manager pour surveiller l’état de
l’application
8. Une fois le traitement terminé, l’application manager se désinscrit auprès du resource
manager
5. Spark

Problème Map Reduce:


90% du temps est perdu dans
les opérations read/write

Solution ?
→ Spark

● Définition Spark :
Apache Spark est un framework de traitement distribué écrit en Scala et conçu pour être rapide et
à usage général.
● Pourquoi Spark ?
❖ 3x plus rapide que Hadoop
❖ Utilise moins de ressource que Hadoop
● Main features
❖ Vitesse
❖ Usage général
❖ Accessibilité
❖ L’intégration
● Spark Stack

● Avantages
❖ Permettre de travailler sur de grandes volumétries de données sans augmenter les temps de
traitement.
❖ Faire évoluer le système en fonction des besoins.
❖ Travailler avec des données de différents formats.
❖ Implémentation des nouveaux types de traitements : Streaming, Machine Learning, Graphe.

● Spark vs. Map Reduce


❖ Spark est rapide :
• 10x plus rapide sur disque
• 100x plus rapide en mémoire
❖ Spark simplifie le développement :
• Écriture simplifiée des programmes
• Un code plus efficace
❖ Plusieurs modes de déploiement sont disponibles sur Spark : YARN, Mesos, Local, …
❖ Stack unifié : permet de travailler sur différentes structures de données (Batch, Streaming,
…) “voir différence Batch/Streaming’
❖ Spark supporte plusieurs langages : Python, Scala, Java, R

● Cas d’usage de Spark


❖ Les ETL
❖ Analyse prédictive et machine learning
❖ Opérations d’accès aux données SQL
❖ Traitement et extraction de texte
❖ Traitement temps réel
❖ Applications graphiques

● Spark components
❖ Spark Driver
❖ Spark Session
❖ Cluster Manager
● Lancement d’une application Spark

RDD (Resilient Distributed Dataset)


● Un programme Spark est une séquence d’opérations invoquées dans SparkContext.
● Ces opérations manipulent un type particulier de structures de données appelé : Resilient
distributed Dataset (RDD).
Un RDD est une collection immuable et distribuée d’objets.
Une opération peut être soit : une transformation soit une action.

❖ Une transformation : prend un ou plusieurs RDD et renvoie un nouveau RDD.


❖ Une action : prend un ou plusieurs RDD et renvoie un résultat au pilote ou l’écrit
dans le stockage.

exemples :

Transformations Actions

map()
filter()
flatMap()

Remarques TDs :

Vous aimerez peut-être aussi