Cours Hadoop

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 18

10/10/2018

Le framework Hadoop
Férihane KBOUBI
ferihane.kboubi@fsegt.utm.tn
1MISIE – FSEGT

Apache Hadoop
• Apache Hadoop est un framework logiciel open source créé en 2006 mais adopté par les plateformes propriétaires
aussi.
• Il permet de diviser de grands ensembles de données en blocs, répartis sur plusieurs serveurs pour le stockage et le
traitement.
• La force de Hadoop provient d’un réseau de serveurs –cluster Hadoop – qui peut traiter les données beaucoup plus
rapidement qu’une seule machine.
• Le cluster Hadoop améliore la capacité de stockage et la redondance des fichiers en répartissant les données sur
plusieurs serveurs.
• Différentes variantes de ce framework sont disponibles aujourd’hui.
• Cloudera
• Hortonworks
• Teradata

F.Kboubi – 1MISIE – FSEGT 2

1
10/10/2018

Structure Hadoop
• Hadoop dispose de nombreuses extensions comme Pig,
Zookeeper, Hbase.
• Cela permet de travailler sur des quantités volumineuses de
données et orchestrées .
• Tous ces projets sont soutenus par Apache Software Foundation.
• Le Core Hadoop est la base de cet écosystème. Ces éléments
sont présents dans toutes les versions de base
• Hadoop Common,
• Hadoop Distributed File System (HDFS)
• MapReduce Engine
• Yarn.

F.Kboubi – 1MISIE – FSEGT 3

Hadoop Core
Contient les bibliothèques et les utilitaires nécessaires aux autres
modules Hadoop, ex : Java Archive (JAR), Scripts nécessaires au
démarrage de Hadoop (./start-all.sh), etc.

Le système de gestion de fichiers distribués permet de


stocker les données sur les machines du cluster

Une plate-forme chargée de la gestion des ressources


informatiques du clusters et de les utiliser pour la planification
des applications des utilisateurs

Une implémentation du modèle de programmation MapReduce


pour le traitement des données à grande échelle

F.Kboubi – 1MISIE – FSEGT 4

2
10/10/2018

F.Kboubi – 1MISIE – FSEGT 5

Systèmes d’exploitation
• Nativement hadoop est compatible Linux.
• Ce n’est que depuis la version hadoop 2.0 que l’on peut l’installer sur
windows.
• Actuellement Cross-plateforme

F.Kboubi – 1MISIE – FSEGT 6

3
10/10/2018

Stockage des données

HDFS (Hadoop Distributed • C’est le Système de stockage de fichiers distribué de


Hadoop.
File System)
• HDFS assouplit les exigences de contrôle des accès
concurrents, simplifie la cohérence des données. (write-
once-read-many)
• Avec HDFS les traitements vont à proximité des données.
• HDFS est composé de groupes de nœuds interconnectés
où résident les fichiers et les répertoires.
• Un cluster HDFS est constitué de:
• un seul nœud, (NameNode), qui gère l’espace de noms du
système de fichiers et régule l’accès des clients aux fichiers.
• les nœuds de données (DataNodes) qui stockent les données
sous forme de blocs dans les fichiers.

F.Kboubi – 1MISIE – FSEGT 7

Stockage des données

HBASE • Base NoSQL orientée colonnes.


• Le stockage reste du HDFS mais HBASE apporte
une surcouche de stockage qui permet de
bénéficier des avantages des bases orientées
colonnes, à savoir les colonnes dynamiques
• deux individus d’une même table n’ont pas forcément les
mêmes colonnes,
• les valeurs null ne sont pas stockées
• et l’historisation à la valeur et non-plus à la ligne
(suppression des doublons, quand une valeur change seule
la valeur concernée est historisée et non toute la ligne).

F.Kboubi – 1MISIE – FSEGT 8

4
10/10/2018

Stockage des données

Metastore de HIVE • Le metastore de Hive apporte le côté base de


données relationnelle dans Hadoop.
• Il permet de stocker la structure des tables et des
bases de données créées via hive ou un autre
framework SQL (impala, spark etc…..).
• Les données restent stockées en hdfs mais le
metastore apporte une surcouche qui permet de
connaître leurs structures et de retrouver cette
notion de ‘tables’ connue en décisionnel et
d’utiliser le SQL.

F.Kboubi – 1MISIE – FSEGT 9

Gestionnaires de ressources

Yarn (Yet Another Resource


Negotiator) • Il s’occupe de la gestion et de
l’allocation des ressources (CPU,
Ram etc..) aux différentes
applications (mapreduce, spark,
impala etc…) lancées sur le cluster.

F.Kboubi – 1MISIE – FSEGT 10

5
10/10/2018

Gestionnaires de ressources

Mesos
• Projet Apache plus récent que
Yarn, c’est aussi un système de
gestion de ressource de clusters.
• Il permet de gérer et de partager
de manière fine, souple et
dynamique des ressources entre
différents clusters, pour diverses
applications.

F.Kboubi – 1MISIE – FSEGT 11

Récupération des données

Apache Flume
• C’est un système distribué
permettant de récupérer des logs
de plusieurs sources, de les
agréger et de les pousser dans
HDFS.
• Il est fiable, flexible, assez intuitif
et porté par toutes les
distributions Hadoop.

F.Kboubi – 1MISIE – FSEGT 12

6
10/10/2018

Récupération des données

Apache Storm
• Système distribué qui permet la
récupération et le traitement en
temps réel des données

F.Kboubi – 1MISIE – FSEGT 13

Récupération des données

Spark Streaming
• Librairie de spark permettant la
récupération et le traitement de
données en temps réel.
• (requiert l’installation de spark)

F.Kboubi – 1MISIE – FSEGT 14

7
10/10/2018

Récupération des données

Kafka
• Système distribué de messagerie
pour l’agrégation de log, le
traitement en temps réel et le
monitoring.
• Développé par linkedin et écrit en
scala.

F.Kboubi – 1MISIE – FSEGT 15

Récupération des données

Flink
• Il fournit un framework de
traitements distribué en mémoire.
• Très similaire à spark sauf que son
cœur est en java (vs scala) et qu’il
a été conçu nativement pour le
temps réel.

F.Kboubi – 1MISIE – FSEGT 16

8
10/10/2018

Récupération des données

Apache Sqoop
• Ce projet permet de faire le lien
entre un système de gestion de
base de données relationnel
(SGBDR) et HDFS.

F.Kboubi – 1MISIE – FSEGT 17

Moteurs d’interrogation et de manipulation des données

MapReduce • Framework open source java, permettant la


manipulation des données dans un environnement
distribué. Il est composé de deux étapes principales.
• L’étape de map qui va permettre d’effectuer des actions
là ou sont stockées les données et fournir en sortie une
liste de clés valeurs.
• L’étape de reduce qui va regrouper les résultats des map
en fonctions de clés et effectuer les actions finales.
• Les étapes de map et de reduce lisent les données et
écrivent leurs résultats sur disque, cela rend le
processus stable mais lent.

F.Kboubi – 1MISIE – FSEGT 18

9
10/10/2018

Moteurs d’interrogation et de manipulation des données

Impala • Moteur SQL distribué mis en place et


proposé par Cloudera.
• Il s’appuie sur le metastore de hive pour
connaître le format des données.
• Il va 20 fois plus vite que MapReduce
mais n’est pour l’instant qu’un
complément car il n’offre pas encore
toutes les fonctionnalités de mapreduce
(sérialisation notamment)

F.Kboubi – 1MISIE – FSEGT 19

Moteurs d’interrogation et de manipulation des données

Apache Drill • Moteur SQL open source développé


initialement par MapR et maintenant porté
par la fondation Apache permettant
d’explorer les données stockées dans un
cluster Hadoop ou dans des bases NoSQL.
• Apache Drill permet d’exécuter des requêtes
sans avoir à définir un schéma de données,
ce qui offre une grande flexibilité aux
utilisateurs.

F.Kboubi – 1MISIE – FSEGT 20

10
10/10/2018

Moteurs d’interrogation et de manipulation des données

Apache Tez
• Moteur SQL distribué initié par
Hortonworks qui vise à remplacer
mapreduce notamment au niveau
de Hive.

F.Kboubi – 1MISIE – FSEGT 21

Moteurs d’interrogation et de manipulation des données

• Il peut aussi bien faire les traitements sur disque ou tout en


Spark mémoire.
• Il va 10 fois plus vite que mapreduce sur disque et 100 fois
plus vite en mémoire.
• Il est enrichi de librairies : MLiB qui contient des algorithmes
parallélisés de machine learning, GraphX pour les algorithmes
de graphes, SparkSQL pour se connecter au metastore de
Hive.
• Spark peut se plugger sur la majorité des systèmes distribués
(NoSQL, Hadoop, MPP …).
• Il peut fonctionner en mode standalone ou être géré par un
gestionnaire de ressources tel que Yarn ou Mesos.
• Il permet nativement de coder en scala, java ou python.

F.Kboubi – 1MISIE – FSEGT 22

11
10/10/2018

Moteurs d’interrogation et de manipulation des données

Pig • Moteur permettant de manipuler tous


types de données avec un langage
beaucoup plus intuitif que le java
mapreduce.
• Il est beaucoup utilisé pour tous les
process ETL (extraction transformation
de données)
• Il permet d’aller plus loin que le SQL.
• Une fois exécuter le code Pig génère du
mapreduce.

F.Kboubi – 1MISIE – FSEGT 23

Moteurs d’interrogation et de manipulation des données

Mahout
• Librairie java contenant des
algorithmes de machine learning
déjà codé en map reduce.
• Son développement est ralenti au
profit de la librairie Mlib de Spark

F.Kboubi – 1MISIE – FSEGT 24

12
10/10/2018

Ordonnanceurs

Oozie
• Il permet d’ordonnancer et de
lancer tous types d’applications
(spark, impala, shell, hive, pig ….)
dans l’écosystème Hadoop.

F.Kboubi – 1MISIE – FSEGT 25

Ordonnanceurs

Airflow
• Outil open source développé par
airbnb qui permet d’ordonnancer
des jobs shell en intégrant
nativement la notion de flux.

F.Kboubi – 1MISIE – FSEGT 26

13
10/10/2018

Ordonnanceurs

Jenkins
• Permet d’ordonnancer et de
scheduler des job shell

F.Kboubi – 1MISIE – FSEGT 27

Interfaces et coordinations

Zookeeper
• Zookeeper permet de mettre en
œuvre la coordination des services
de l’écosystème et leur
synchronisation dans un
environnement distribué.
• Seul les administrateurs peuvent
être amené à interagir avec lui.

F.Kboubi – 1MISIE – FSEGT 28

14
10/10/2018

Interfaces et coordinations

Hue
• Interface web qui permet d’accéder
directement aux principaux modules
(hive, pig, sqoop, spark, impala,
etc……).
• Nativement on peut accéder aux
modules en ligne de commandes.
• Hue apporte une interface commune
et agréable d’utilisation.

F.Kboubi – 1MISIE – FSEGT 29

Fournisseurs de
distributions Hadoop

F.Kboubi – 1MISIE – FSEGT 30

15
10/10/2018

Les fournisseurs de distributions Hadoop


En plus d’Apache Hadoop, il existe d’autres distributions Hadoop, ex :
• Hortonworks : la Plateforme de données Hortonworks (HDP:Hortonworks Data Platform) comprend le
système Hadoop Distributed File System (HDFS), MapReduce, Pig, Hive, HBase et ZooKeeper.
• Cloudera : contient les principaux éléments, de base du framework Hadoop (MapReduce et HDFS), ainsi
que d’autres composants destinés aux entreprises qui assurent la sécurité, la haute disponibilité, et
l’intégration avec le matériel et les autres logiciels.
• Pivotal : en partenariat avec Hortonworks depuis 2015. Ensemble, ils concentrent leurs efforts autour d’un
noyau cohérent de fonctionnalités basées sur Apache Hadoop comprenant des intégrations de produits,
l’ingénierie conjointe et soutien à la production.
• MapR : utilise un système de fichier Unix natif au lieu de HDFS. Il propose des fonctionnalités de haute
disponibilité (snapshots, la réplication et le basculement avec état).

F.Kboubi – 1MISIE – FSEGT 31

Pour tester
Apache Hadoop
Ecosystem
Cloudera QuickStart VMs
(single-node cluster)
https://www.cloudera.com/products/
open-source/apache-hadoop.html

F.Kboubi – 1MISIE – FSEGT 32

16
10/10/2018

Modes d'Exécution Hadoop


• Hadoop propose trois modes d'exécution :
• Local (standalone)
• Bon pour des petits tests et débogage

• Local (pseudo-distributed)
• Les tâches sont lancées dans différentes VM Java
• La configuration est presque comme celle d'un cluster

• Fully-distributed (cluster)
• Toutes les machines du cluster sont configurées avec Hadoop
• Une topologie maître-esclave est mise en place

F.Kboubi – 1MISIE – FSEGT 33

Téléchargement Apache Hadoop Releases http://hadoop.apache.org/releases.html

F.Kboubi – 1MISIE – FSEGT 34

17
10/10/2018

Cloudera QuickStart VMs (single-node cluster)


CDH contient les

https://www.cloudera.com/downloads/quickstart_vms/5-12.html
principaux éléments, de
base du framework
Hadoop (MapReduce et
HDFS), ainsi que d'autres
composants orientés
vers les entreprises qui
assurent la sécurité, la
haute disponibilité, et
l'intégration avec le
matériel et les autres
logiciels (HDFS &
MapReduce, Impala,
Apache Spark, HBase,
Accumulo, Apache
Kafka).

F.Kboubi – 1MISIE – FSEGT 35

18

Vous aimerez peut-être aussi