SlideShare uma empresa Scribd logo
1 de 72
Baixar para ler offline
Introduction à l'écosystème hadoop
●
●
●
●
●
●
●
●

Introduction
Composants de base du système
HDFS
MapReduce
Warnings
L'écosystème
Usecases Ekino
Perspectives et liens
Introduction
Le contexte
●

●

●

Croissance des volumes de données produits par les
systèmes informatiques
Réseaux sociaux, données scientifiques, capteurs
Formes variées : texte structuré / non structuré,
images
Les usecases typiques
●

Analyse de logs

●

Business Intelligence

●

Transformation de données, ETL-style

●

Machine learning : moteurs de recommandations,
détection de patterns
Les limites techniques
●

●

●

●

Les disques durs stockent de plus en plus de
données, mais la vitesse d'accès reste la même
La RAM disponible sur un serveur augmente, mais
pas autant que la taille des datasets
Si les données sont sur plusieurs serveurs, on
augmente les capacités du système...
Mais aussi les risques de panne hardware
L'approche Hadoop
●

●

●

Les données doivent être répliquées sur plusieurs
disques, afin de pallier aux crashs hardware
Les données doivent être réparties de façon à
minimiser les accès réseaux
Si on pousse le code vers les données , et pas
l'inverse, on évite des transferts massifs de données
Les origines d'Hadoop
●

Au commencement, deux publications Google :
●
The Google File System (GFS) : a scalable
distributed file system for large distributed dataintensive applications
●

●

MapReduce: Simplified Data Processing on Large
Clusters

Ces systèmes décrivent la nouvelle infrastructure
Google, et restent propriétaires.
Les origines d'Hadoop
●

●

●

●

Pendant ce temps là, Doug Cutting, créateur de Lucene et
Nutch, cherche un framework pour distribuer les calculs
de graphes Nutch
Il implémente les principes de GFS et MapReduce dans
Nutch
Il est embauché par Yahoo! pour poursuivre ces
développements
Yahoo donne Hadoop à la fondation Apache
Composants de base du système
Les composants Hadoop
●

●

Hadoop se compose de deux systèmes : HDFS et
MapReduce
Cinq types de process vont gouverner ces systèmes
Les composants : Namenode
●

●

●

●

Le Namenode est le process qui pilote HDFS : il sait
où sont stockées quelles données
C'est lui qui orchestre les DataNodes
Ce process est d'autant plus crucial que c'est aussi le
SPOF du système
Nécessite beaucoup de RAM
Les composants :
SecondaryNamenode
●

●

Le SecondaryNamenode prends des snapshots des
logs du Namenode à intervalles réguliers
Ce n'est pas un backup du NameNode : il peut aider à
récupérer des données et relancer un cluster, mais
ça n'a rien d'automatique
Les composants : Datanode
●

●

●

Les Datanodes sont les noeuds sur lesquels résident
les données
Ce sont eux qui traduisent les blocks HDFS en
fichiers sur disque
En communication constante avec le Namenode
Les composants : JobTracker
●

●

●

Le JobTracker pilote l'exécution des jobs sur le
cluster
C'est lui qui assigne les tâches aux TaskTrackers, et
gèrent leur cycle de vie
Il est également responsable de la gestion des
erreurs, et de la relance des jobs
Les composants : TaskTracker
●

Les TaskTrackers exécute les jobs (Map et Reduce)

●

Ils communiquent au JobTracker l'état des jobs
Schéma général

Hadoop in Action, Manning
Les fichiers de configuration
●

●

●

Trois fichiers thématiques pour configurer son
cluster : core-site.xml, hdfs-site.xml, mapred-site.xml
Tous sont au même format : un ensemble de paires
clés / valeurs
Des centaines de propriétés sont configurables, une
dizaine est vraiment importante
Les fichiers de configuration
Trois modes d'exécution
●

●

Mode local : un seul process, utile pour debugger,
mais très limité
Mode pseudo-distribué : 5 JVM distinctes, une par
process, sur une seule machine. Utile pour valider des
développements dans des conditions de prod.

●

Mode distribué : le « vrai » mode, pour la production.

●

On passe de l'un à l'autre en switchant des properties
Démarrer un cluster
●

●

Le fichier slaves permet de définir les hosts sur
lesquels tournent les datanodes / tasktrackers.
Des scripts permettent de lancer HDFS et
MapReduce simultanément ou séparément.
HDFS
Principes de HDFS
●

●

●

●

L'unité de stockage de base est le Block (64Mb par
défaut)
Chaque block est répliqué sur plusieurs noeuds
HDFS est fault-tolerant : si un noeud tombe, les
autres noeuds peuvent continuer à servir les fichiers
RAID < JBOD (Just a Bunch Of Disks)
Limites de HDFS
●

●

●

HDFS est orienté batchs : pas adapté aux
traitements online
HDFS est orienté « write once, read many times » :
pas de modifications arbitraires au milieu d'un fichier
HDFS n'est pas fait pour stocker beaucoup de petits
fichiers : trop de metadata à maintenir
Features
●

●

●

●

Supporte différents types de compressions : GZIP,
BZ, LZO
Filesystem manipulable via Java, C, Thrift
Hadoop supporte également d'autres types de
filesystems : local, FTP, S3
Le système calcule des checksums pour détecter
toute corruption
Exemples
Types de fichiers
●

●

●

On peut stocker des données sous forme de fichier
texte standard
Ou sous forme de fichier binaire optimisé pour
MapReduce, compressable, splittable : le
SequenceFile
Existe aussi en version permettant des lookups : le
MapFile 
Lire dans HDFS

Hadoop : The Definitive Guide, O'Reilly
Ecrire dans HDFS

Hadoop : The Definitive Guide, O'Reilly
Map Reduce
Principes de MapReduce
●

●

●

MapReduce n'est pas un langage, c'est un paradigme
de programmation. L'idée est de découper un
traitement de données en deux phases.
La première phase est le Map : c'est là que l'on va
transformer les données en entrée
La seconde phase est le reduce : on va y aggréger les
résultats du Map
Principes de MapReduce
●

●

●

●

Le format de base des échanges entre map et reduce est
la paire clé / valeur
La sérialisation des objets est gérée par Hadoop, sous
forme de Writable : pas de sérialisation Java native
Hadoop fournit des types primitifs sérializables, mais on
peut bien sûr fournir ses propres types complexes
La phase de shuffle, entre map et reduce, va partitionner
les données par clé
Principes de MapReduce

Hadoop : The Definitive Guide, O'Reilly
Principes de MapReduce
●

Map :
<k1, v1>  →  list(k2,v2)  

●

Reduce :
<k2, list(v2)>  →  list(k3,v3) 
Exemple : analyse de logs apache
●

Entrées / sorties de Map :
<LineNumber, LineContent>  →  list(URI,Count)  

●

Exemple d'entrée :

10.51.204.2 - - [28/Mar/2012:04:05:16 +0200] "GET /supervision.jsp HTTP/1.0" 200 2 "-" "HTTP-Monitor/1.1"
10.51.204.1 - - [28/Mar/2012:04:05:16 +0200] "GET /supervision.jsp HTTP/1.0" 200 2 "-" "HTTP-Monitor/1.1"
62.39.140.248 - - [28/Mar/2012:04:05:16 +0200] "GET / HTTP/1.1" 200 118580 "-" "Mozilla/4.0 (compatible; 
MSIE 6.0; Windows NT 5.0; ip-label)"

●

Exemple de sortie
/supervision.jsp 1
/supervision.jsp 1
/ 1
Exemple : analyse de logs apache
●

Entrées / sorties de Map :
<URI, list(Count)>  →  list(URI,Count)  

●

Exemple d'entrée :

    /supervision.jsp 1
    /supervision.jsp 1
    /supervision.jsp 1
    / 1
    / 1

●

Exemple de sortie
/supervision.jsp 3
/ 2
Eléments de base dans l'API Java
●

Tout commence par la définition d'un Job, basé sur
une Configuration, et sur des paramètres
utilisateurs
Eléments de base dans l'API Java
●

On donne à ce job des implémentations de Mapper,
Reducer, types des fichiers d'entrée et sortie , types
des paramètres.
Eléments de base dans l'API Java
●

Le Mapper est très simple : on extrait l'url, et on
« émet » un compteur de 1
Eléments de base dans l'API Java
●

●

Le Reducer additionne les valeurs obtenue pour
une même clé.

Hadoop propose pour ce type de Reducer le
LongSumReducer.
Eléments de base dans l'API Java
●

Si on veut travailler sur des types non primitifs, on
peut créer un WritableComparable
Eléments de base dans l'API Java
●

On utilise la commande hadoop pour lancer et
paramétrer son job
La Streaming API
●

●

L'utilisation d'Hadoop n'est pas réservée aux jobs
Java. Tout langage lisant STDIN / STDOUT peut se
brancher sur la Streaming API : PHP, Ruby, Python...
On va spécifier en paramètre les scripts à exécuter
lors des phases de map et reduce
La Streaming API : exemple en Ruby
Warnings
Savoir choisir le bon outil
●

Parfois des outils standards peuvent suffire
●

sed /grep / awk

●

SGBD

●

bashreduce
Complexité et coûts
●

●

●

Hadoop est certes une solution open source
nécessitant du hardware standard
Mais les coûts de déploiement / monitoring restent
élevés
Et l'apprentissage est long....
L'enfer des versions
●

Le versioning d'Hadoop peut laisser perplexe

●

Améliorations récentes 
●

Sortie de la v1.0

●

Packages Cloudera
L'enfer des versions (en image)
●

Le graphe des branches passées et en cours :

http://www.cloudera.com/blog/2012/01/an-update-on-apache-hadoop-1-0/
Le client java
●

●

●

L'API Java possède une ancienne version (deprecated
puis un-deprecated), et une nouvelle version
Beaucoup de méthodes statiques, API pas très
intuitive
Réaliser des joins ou du chainage de jobs est loin
d'être trivial 
L'écosystème
Un projet parmi d'autres
●

●

Hadoop est utilisable seul, mais de nombreux projets
externes facilitent son utilisation
La plupart de ces librairies ont été développées puis
opensourcées par de gros acteurs du web.
Pig
●

●

●

●

Pig est un DSL qui permet de créer des jobs MapReduce
de manière beaucoup plus simple que l'API native
Chaque script Pig va être traduit en jobs MapReduce qui
vont s'exécuter séquentiellement ou en parallèle.
Il s'agit de faciliter l'écriture et la lisibilité des jobs, au
détriment de leur rapidité d'exécution
Le DSL s'articule autour de macros comme LOAD, STORE,
GROUP BY, COUNT, JOIN, qui rendent simples des tâches
complexes à réaliser avec le client Java, et autour d'UDF,
User Defined Functions écrites en Java
Pig : exemple de script
Pig : exemple d'UDF
Sqoop
●

Le but de Sqoop est de faciliter l'export / import de
données entre HDFS et des bases de données
externes.
HBase
●

●

●

Hbase est une base de données orientée colonnes,
selon le design du système BigTable de Google
C'est le seul système orienté temps réel de
l'écosystème Hadoop : on peut exécuter des
requêtes sans passer par des jobs MapReduce
C'est un système extrêmement complexe 
Et les autres
●

Hive : possibilité d'exécuter du sql enrichi sur HDFS

●

Flume : framework utilisé pour alimenter HDFS

●

Cascading : framework java à base de pipelines

●

●

Avro : système de sérialisation, façon Thrift /
ProtocolBuffers
Mahout : algorithmes de machine learning
distribuables
Usecases Ekino
Orange Business Services
●

●

●

Le but : récolter des tweets et les liens associés, les
organiser en catégories, et afficher des visualisations
permettant de naviguer par thèmes / périodes
Un tweet prend peu de place, mais si on récupère le
contenu des liens, l'espace disque se réduit vite
D'où le choix d'Hadoop pour stocker ces tweets et
faire passer des jobs calculant des statistiques
Workflow des données
●

●

●

Un démon est connecté à datasift, et écrit
directement les tweets dans HDFS
Des jobs Hadoop tournent toutes les heures pour
calculer les compteurs par catégorie
Avec Sqoop, on exporte ces résultats vers MySQL
Workflow des données
Perspectives
Les améliorations à venir
●

NameNode High Availability

●

Nouveau système MapRecuce : YARN

●

Meilleur mécanisme de scheduling
Toujours plus de connexions
●

●

●

●

Intégration à Microsoft Azure, Excel
Toujours plus de produits intégrant Hadoop : ETL,
bases de données
Plus de facilité pour provisionner / monitorer un
cluster
Les innovations à venir seront probablement issues
d'acteurs commerciaux : Cloudera, Hortonworks
Pour en savoir plus
Les papiers Google
●

●

GFS :
http://research.google.com/archive/gfs.html
MapReduce :
http://research.google.com/archive/mapreduce.html
Quelques bons tutorials
●

http://developer.yahoo.com/hadoop/tutorial/

●

http://hadoop.apache.org/common/docs/current/mapred

●

http://radar.oreilly.com/2011/06/getting-started-with-had
Hadoop chez les grands noms du web
●

●

●

●

Twitter : http://www.slideshare.net/kevinweil/hadoop-pig-andtwitter-nosql-east-2009
LinkedIn : http://engineering.linkedin.com/hadoop/userengagement-powered-apache-pig-and-hadoop
Facebook : http://www.royans.net/arch/hive-facebook/
Les plans de Microsoft :
http://www.slideshare.net/bradsa/apache-hadoop-for-windowsserver-and-windwos-azure
Des blogs à suivre
●

http://nosql.mypopescu.com/tagged/hadoop

●

http://www.cloudera.com/blog

●

http://hortonworks.com/blog/
?????

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Une Introduction à Hadoop
Une Introduction à HadoopUne Introduction à Hadoop
Une Introduction à Hadoop
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
Hadoop
HadoopHadoop
Hadoop
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
TP2 Big Data HBase
TP2 Big Data HBaseTP2 Big Data HBase
TP2 Big Data HBase
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
 
Introduction à Hadoop
Introduction à HadoopIntroduction à Hadoop
Introduction à Hadoop
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Hadoop
HadoopHadoop
Hadoop
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introduction
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 

Destaque

Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien RoySe lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Royekino
 
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...Microsoft
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 
Hadoop live online training
Hadoop live online trainingHadoop live online training
Hadoop live online trainingHarika583
 
Pachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerPachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerEnguerran Delahaie
 
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
 
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
 
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réelMathieu DESPRIEE
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopJoseph Glorieux
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 
Runaway complexity in Big Data... and a plan to stop it
Runaway complexity in Big Data... and a plan to stop itRunaway complexity in Big Data... and a plan to stop it
Runaway complexity in Big Data... and a plan to stop itnathanmarz
 
Implementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache SparkImplementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache SparkDataWorks Summit
 
Big data real time architectures
Big data real time architecturesBig data real time architectures
Big data real time architecturesDaniel Marcous
 
Hadoop MapReduce Fundamentals
Hadoop MapReduce FundamentalsHadoop MapReduce Fundamentals
Hadoop MapReduce FundamentalsLynn Langit
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkALTIC Altic
 
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
 

Destaque (20)

Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien RoySe lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
 
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m...
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Hadoop live online training
Hadoop live online trainingHadoop live online training
Hadoop live online training
 
Pachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerPachyderm big data de l'ère docker
Pachyderm big data de l'ère docker
 
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
 
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
 
Présentation Cryptographie
Présentation CryptographiePrésentation Cryptographie
Présentation Cryptographie
 
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
Runaway complexity in Big Data... and a plan to stop it
Runaway complexity in Big Data... and a plan to stop itRunaway complexity in Big Data... and a plan to stop it
Runaway complexity in Big Data... and a plan to stop it
 
Implementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache SparkImplementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache Spark
 
Big data real time architectures
Big data real time architecturesBig data real time architectures
Big data real time architectures
 
Hadoop MapReduce Fundamentals
Hadoop MapReduce FundamentalsHadoop MapReduce Fundamentals
Hadoop MapReduce Fundamentals
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
Intro To Hadoop
Intro To HadoopIntro To Hadoop
Intro To Hadoop
 
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
 

Semelhante a Hadoop and friends : introduction

Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...OCTO Technology
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Hamza Ben Marzouk
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfsalmanakbi
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfMissaouiWissal
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfAhmedToujani1
 
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxNOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxEddySHANGA
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadooppkernevez
 
Aqui hadoop draft
Aqui hadoop draftAqui hadoop draft
Aqui hadoop draftEric Papet
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribuesLê Anh
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptxbely26
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
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
 

Semelhante a Hadoop and friends : introduction (20)

Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdf
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdf
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdf
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxNOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
 
spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Hadoop
HadoopHadoop
Hadoop
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadoop
 
Aqui hadoop draft
Aqui hadoop draftAqui hadoop draft
Aqui hadoop draft
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptx
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
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
 

Hadoop and friends : introduction

  • 2. ● ● ● ● ● ● ● ● Introduction Composants de base du système HDFS MapReduce Warnings L'écosystème Usecases Ekino Perspectives et liens
  • 4. Le contexte ● ● ● Croissance des volumes de données produits par les systèmes informatiques Réseaux sociaux, données scientifiques, capteurs Formes variées : texte structuré / non structuré, images
  • 5. Les usecases typiques ● Analyse de logs ● Business Intelligence ● Transformation de données, ETL-style ● Machine learning : moteurs de recommandations, détection de patterns
  • 6. Les limites techniques ● ● ● ● Les disques durs stockent de plus en plus de données, mais la vitesse d'accès reste la même La RAM disponible sur un serveur augmente, mais pas autant que la taille des datasets Si les données sont sur plusieurs serveurs, on augmente les capacités du système... Mais aussi les risques de panne hardware
  • 7. L'approche Hadoop ● ● ● Les données doivent être répliquées sur plusieurs disques, afin de pallier aux crashs hardware Les données doivent être réparties de façon à minimiser les accès réseaux Si on pousse le code vers les données , et pas l'inverse, on évite des transferts massifs de données
  • 8. Les origines d'Hadoop ● Au commencement, deux publications Google : ● The Google File System (GFS) : a scalable distributed file system for large distributed dataintensive applications ● ● MapReduce: Simplified Data Processing on Large Clusters Ces systèmes décrivent la nouvelle infrastructure Google, et restent propriétaires.
  • 9. Les origines d'Hadoop ● ● ● ● Pendant ce temps là, Doug Cutting, créateur de Lucene et Nutch, cherche un framework pour distribuer les calculs de graphes Nutch Il implémente les principes de GFS et MapReduce dans Nutch Il est embauché par Yahoo! pour poursuivre ces développements Yahoo donne Hadoop à la fondation Apache
  • 10. Composants de base du système
  • 11. Les composants Hadoop ● ● Hadoop se compose de deux systèmes : HDFS et MapReduce Cinq types de process vont gouverner ces systèmes
  • 12. Les composants : Namenode ● ● ● ● Le Namenode est le process qui pilote HDFS : il sait où sont stockées quelles données C'est lui qui orchestre les DataNodes Ce process est d'autant plus crucial que c'est aussi le SPOF du système Nécessite beaucoup de RAM
  • 13. Les composants : SecondaryNamenode ● ● Le SecondaryNamenode prends des snapshots des logs du Namenode à intervalles réguliers Ce n'est pas un backup du NameNode : il peut aider à récupérer des données et relancer un cluster, mais ça n'a rien d'automatique
  • 14. Les composants : Datanode ● ● ● Les Datanodes sont les noeuds sur lesquels résident les données Ce sont eux qui traduisent les blocks HDFS en fichiers sur disque En communication constante avec le Namenode
  • 15. Les composants : JobTracker ● ● ● Le JobTracker pilote l'exécution des jobs sur le cluster C'est lui qui assigne les tâches aux TaskTrackers, et gèrent leur cycle de vie Il est également responsable de la gestion des erreurs, et de la relance des jobs
  • 16. Les composants : TaskTracker ● Les TaskTrackers exécute les jobs (Map et Reduce) ● Ils communiquent au JobTracker l'état des jobs
  • 17. Schéma général Hadoop in Action, Manning
  • 18. Les fichiers de configuration ● ● ● Trois fichiers thématiques pour configurer son cluster : core-site.xml, hdfs-site.xml, mapred-site.xml Tous sont au même format : un ensemble de paires clés / valeurs Des centaines de propriétés sont configurables, une dizaine est vraiment importante
  • 19. Les fichiers de configuration
  • 20. Trois modes d'exécution ● ● Mode local : un seul process, utile pour debugger, mais très limité Mode pseudo-distribué : 5 JVM distinctes, une par process, sur une seule machine. Utile pour valider des développements dans des conditions de prod. ● Mode distribué : le « vrai » mode, pour la production. ● On passe de l'un à l'autre en switchant des properties
  • 21. Démarrer un cluster ● ● Le fichier slaves permet de définir les hosts sur lesquels tournent les datanodes / tasktrackers. Des scripts permettent de lancer HDFS et MapReduce simultanément ou séparément.
  • 22. HDFS
  • 23. Principes de HDFS ● ● ● ● L'unité de stockage de base est le Block (64Mb par défaut) Chaque block est répliqué sur plusieurs noeuds HDFS est fault-tolerant : si un noeud tombe, les autres noeuds peuvent continuer à servir les fichiers RAID < JBOD (Just a Bunch Of Disks)
  • 24. Limites de HDFS ● ● ● HDFS est orienté batchs : pas adapté aux traitements online HDFS est orienté « write once, read many times » : pas de modifications arbitraires au milieu d'un fichier HDFS n'est pas fait pour stocker beaucoup de petits fichiers : trop de metadata à maintenir
  • 25. Features ● ● ● ● Supporte différents types de compressions : GZIP, BZ, LZO Filesystem manipulable via Java, C, Thrift Hadoop supporte également d'autres types de filesystems : local, FTP, S3 Le système calcule des checksums pour détecter toute corruption
  • 27. Types de fichiers ● ● ● On peut stocker des données sous forme de fichier texte standard Ou sous forme de fichier binaire optimisé pour MapReduce, compressable, splittable : le SequenceFile Existe aussi en version permettant des lookups : le MapFile 
  • 28. Lire dans HDFS Hadoop : The Definitive Guide, O'Reilly
  • 29. Ecrire dans HDFS Hadoop : The Definitive Guide, O'Reilly
  • 31. Principes de MapReduce ● ● ● MapReduce n'est pas un langage, c'est un paradigme de programmation. L'idée est de découper un traitement de données en deux phases. La première phase est le Map : c'est là que l'on va transformer les données en entrée La seconde phase est le reduce : on va y aggréger les résultats du Map
  • 32. Principes de MapReduce ● ● ● ● Le format de base des échanges entre map et reduce est la paire clé / valeur La sérialisation des objets est gérée par Hadoop, sous forme de Writable : pas de sérialisation Java native Hadoop fournit des types primitifs sérializables, mais on peut bien sûr fournir ses propres types complexes La phase de shuffle, entre map et reduce, va partitionner les données par clé
  • 33. Principes de MapReduce Hadoop : The Definitive Guide, O'Reilly
  • 35. Exemple : analyse de logs apache ● Entrées / sorties de Map : <LineNumber, LineContent>  →  list(URI,Count)   ● Exemple d'entrée : 10.51.204.2 - - [28/Mar/2012:04:05:16 +0200] "GET /supervision.jsp HTTP/1.0" 200 2 "-" "HTTP-Monitor/1.1" 10.51.204.1 - - [28/Mar/2012:04:05:16 +0200] "GET /supervision.jsp HTTP/1.0" 200 2 "-" "HTTP-Monitor/1.1" 62.39.140.248 - - [28/Mar/2012:04:05:16 +0200] "GET / HTTP/1.1" 200 118580 "-" "Mozilla/4.0 (compatible;  MSIE 6.0; Windows NT 5.0; ip-label)" ● Exemple de sortie /supervision.jsp 1 /supervision.jsp 1 / 1
  • 36. Exemple : analyse de logs apache ● Entrées / sorties de Map : <URI, list(Count)>  →  list(URI,Count)   ● Exemple d'entrée :     /supervision.jsp 1     /supervision.jsp 1     /supervision.jsp 1     / 1     / 1 ● Exemple de sortie /supervision.jsp 3 / 2
  • 37. Eléments de base dans l'API Java ● Tout commence par la définition d'un Job, basé sur une Configuration, et sur des paramètres utilisateurs
  • 38. Eléments de base dans l'API Java ● On donne à ce job des implémentations de Mapper, Reducer, types des fichiers d'entrée et sortie , types des paramètres.
  • 39. Eléments de base dans l'API Java ● Le Mapper est très simple : on extrait l'url, et on « émet » un compteur de 1
  • 40. Eléments de base dans l'API Java ● ● Le Reducer additionne les valeurs obtenue pour une même clé. Hadoop propose pour ce type de Reducer le LongSumReducer.
  • 41. Eléments de base dans l'API Java ● Si on veut travailler sur des types non primitifs, on peut créer un WritableComparable
  • 42. Eléments de base dans l'API Java ● On utilise la commande hadoop pour lancer et paramétrer son job
  • 43. La Streaming API ● ● L'utilisation d'Hadoop n'est pas réservée aux jobs Java. Tout langage lisant STDIN / STDOUT peut se brancher sur la Streaming API : PHP, Ruby, Python... On va spécifier en paramètre les scripts à exécuter lors des phases de map et reduce
  • 44. La Streaming API : exemple en Ruby
  • 46. Savoir choisir le bon outil ● Parfois des outils standards peuvent suffire ● sed /grep / awk ● SGBD ● bashreduce
  • 47. Complexité et coûts ● ● ● Hadoop est certes une solution open source nécessitant du hardware standard Mais les coûts de déploiement / monitoring restent élevés Et l'apprentissage est long....
  • 48. L'enfer des versions ● Le versioning d'Hadoop peut laisser perplexe ● Améliorations récentes  ● Sortie de la v1.0 ● Packages Cloudera
  • 49. L'enfer des versions (en image) ● Le graphe des branches passées et en cours : http://www.cloudera.com/blog/2012/01/an-update-on-apache-hadoop-1-0/
  • 50. Le client java ● ● ● L'API Java possède une ancienne version (deprecated puis un-deprecated), et une nouvelle version Beaucoup de méthodes statiques, API pas très intuitive Réaliser des joins ou du chainage de jobs est loin d'être trivial 
  • 52. Un projet parmi d'autres ● ● Hadoop est utilisable seul, mais de nombreux projets externes facilitent son utilisation La plupart de ces librairies ont été développées puis opensourcées par de gros acteurs du web.
  • 53. Pig ● ● ● ● Pig est un DSL qui permet de créer des jobs MapReduce de manière beaucoup plus simple que l'API native Chaque script Pig va être traduit en jobs MapReduce qui vont s'exécuter séquentiellement ou en parallèle. Il s'agit de faciliter l'écriture et la lisibilité des jobs, au détriment de leur rapidité d'exécution Le DSL s'articule autour de macros comme LOAD, STORE, GROUP BY, COUNT, JOIN, qui rendent simples des tâches complexes à réaliser avec le client Java, et autour d'UDF, User Defined Functions écrites en Java
  • 56. Sqoop ● Le but de Sqoop est de faciliter l'export / import de données entre HDFS et des bases de données externes.
  • 57. HBase ● ● ● Hbase est une base de données orientée colonnes, selon le design du système BigTable de Google C'est le seul système orienté temps réel de l'écosystème Hadoop : on peut exécuter des requêtes sans passer par des jobs MapReduce C'est un système extrêmement complexe 
  • 58. Et les autres ● Hive : possibilité d'exécuter du sql enrichi sur HDFS ● Flume : framework utilisé pour alimenter HDFS ● Cascading : framework java à base de pipelines ● ● Avro : système de sérialisation, façon Thrift / ProtocolBuffers Mahout : algorithmes de machine learning distribuables
  • 60. Orange Business Services ● ● ● Le but : récolter des tweets et les liens associés, les organiser en catégories, et afficher des visualisations permettant de naviguer par thèmes / périodes Un tweet prend peu de place, mais si on récupère le contenu des liens, l'espace disque se réduit vite D'où le choix d'Hadoop pour stocker ces tweets et faire passer des jobs calculant des statistiques
  • 61.
  • 62. Workflow des données ● ● ● Un démon est connecté à datasift, et écrit directement les tweets dans HDFS Des jobs Hadoop tournent toutes les heures pour calculer les compteurs par catégorie Avec Sqoop, on exporte ces résultats vers MySQL
  • 65. Les améliorations à venir ● NameNode High Availability ● Nouveau système MapRecuce : YARN ● Meilleur mécanisme de scheduling
  • 66. Toujours plus de connexions ● ● ● ● Intégration à Microsoft Azure, Excel Toujours plus de produits intégrant Hadoop : ETL, bases de données Plus de facilité pour provisionner / monitorer un cluster Les innovations à venir seront probablement issues d'acteurs commerciaux : Cloudera, Hortonworks
  • 70. Hadoop chez les grands noms du web ● ● ● ● Twitter : http://www.slideshare.net/kevinweil/hadoop-pig-andtwitter-nosql-east-2009 LinkedIn : http://engineering.linkedin.com/hadoop/userengagement-powered-apache-pig-and-hadoop Facebook : http://www.royans.net/arch/hive-facebook/ Les plans de Microsoft : http://www.slideshare.net/bradsa/apache-hadoop-for-windowsserver-and-windwos-azure
  • 71. Des blogs à suivre ● http://nosql.mypopescu.com/tagged/hadoop ● http://www.cloudera.com/blog ● http://hortonworks.com/blog/
  • 72. ?????