Hadoop and friends : introduction

F
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
Hadoop and friends : introduction
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/
?????
1 sur 72

Recommandé

Hadoop et son écosystème par
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
9.3K vues75 diapositives
Chapitre 2 hadoop par
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoopMouna Torjmen
1.4K vues39 diapositives
BigData_Chp2: Hadoop & Map-Reduce par
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
34.6K vues58 diapositives
Cours Big Data Chap3 par
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
3.4K vues52 diapositives
Presentation Hadoop Québec par
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
3K vues36 diapositives

Contenu connexe

Tendances

Hadoop par
HadoopHadoop
Hadoopkamar MEDDAH
162 vues37 diapositives
Cours Big Data Chap4 - Spark par
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
4.7K vues17 diapositives
Installation hadoopv2.7.4-amal abid par
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidAmal Abid
4.2K vues13 diapositives
BigData_TP1: Initiation à Hadoop et Map-Reduce par
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
44.9K vues9 diapositives
BigData_TP4 : Cassandra par
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
31.2K vues12 diapositives
Introduction à la big data v3 par
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3 Mehdi TAZI
4.1K vues124 diapositives

Tendances(20)

Cours Big Data Chap4 - Spark par Amal Abid
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
Amal Abid4.7K vues
Installation hadoopv2.7.4-amal abid par Amal Abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
Amal Abid4.2K vues
BigData_TP1: Initiation à Hadoop et Map-Reduce par Lilia Sfaxi
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
Lilia Sfaxi44.9K vues
BigData_TP4 : Cassandra par Lilia Sfaxi
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
Lilia Sfaxi31.2K vues
Introduction à la big data v3 par Mehdi TAZI
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3
Mehdi TAZI4.1K vues
BigData_TP3 : Spark par Lilia Sfaxi
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
Lilia Sfaxi31.2K vues
TP1 Big Data - MapReduce par Amal Abid
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
Amal Abid4.4K vues
BigData_TP2: Design Patterns dans Hadoop par Lilia Sfaxi
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
Lilia Sfaxi29.6K vues
Cours Big Data Chap1 par Amal Abid
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
Amal Abid15.6K vues
Spark, ou comment traiter des données à la vitesse de l'éclair par Alexis Seigneurin
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
Alexis Seigneurin4.8K vues
Cours Big Data Chap6 par Amal Abid
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
Amal Abid2.3K vues
BigData_Chp3: Data Processing par Lilia Sfaxi
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
Lilia Sfaxi41.5K vues
BigData_Chp1: Introduction à la Big Data par Lilia Sfaxi
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
Lilia Sfaxi42K vues
Cours Big Data Chap2 par Amal Abid
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
Amal Abid10.7K vues

En vedette

Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy par
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
4.5K vues40 diapositives
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m... par
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
1.6K vues22 diapositives
Atelier hadoop-single-sign-on par
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
805 vues20 diapositives
Hadoop live online training par
Hadoop live online trainingHadoop live online training
Hadoop live online trainingHarika583
483 vues41 diapositives
Pachyderm big data de l'ère docker par
Pachyderm big data de l'ère dockerPachyderm big data de l'ère docker
Pachyderm big data de l'ère dockerEnguerran Delahaie
1.2K vues19 diapositives
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure par
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
2.2K vues45 diapositives

En vedette(20)

Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy par ekino
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
ekino4.5K vues
Avec Hadoop, Excel et… 1€, réalisez votre premier Mobile BigData Tracker en m... par Microsoft
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...
Microsoft1.6K vues
Atelier hadoop-single-sign-on par sahar dridi
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
sahar dridi805 vues
Hadoop live online training par Harika583
Hadoop live online trainingHadoop live online training
Hadoop live online training
Harika583483 vues
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure par Microsoft
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
Microsoft2.2K vues
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel par Mathieu DESPRIEE
[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
Mathieu DESPRIEE5.2K vues
Présentation Big Data et REX Hadoop par Joseph Glorieux
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
Joseph Glorieux4.6K vues
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat... par Hatim CHAHDI
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 CHAHDI4.3K vues
Panorama des solutions mobile hybrides par ekino
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
ekino4.4K vues
Runaway complexity in Big Data... and a plan to stop it par nathanmarz
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
nathanmarz100.2K vues
Implementing the Lambda Architecture efficiently with Apache Spark par DataWorks Summit
Implementing the Lambda Architecture efficiently with Apache SparkImplementing the Lambda Architecture efficiently with Apache Spark
Implementing the Lambda Architecture efficiently with Apache Spark
DataWorks Summit10K vues
Big data real time architectures par Daniel Marcous
Big data real time architecturesBig data real time architectures
Big data real time architectures
Daniel Marcous4.5K vues
Hadoop MapReduce Fundamentals par Lynn Langit
Hadoop MapReduce FundamentalsHadoop MapReduce Fundamentals
Hadoop MapReduce Fundamentals
Lynn Langit133.9K vues
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark par ALTIC Altic
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
ALTIC Altic1.7K vues
Techday Arrow Group: Hadoop & le Big Data par Arrow Group
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
Arrow Group3.6K vues

Similaire à Hadoop and friends : introduction

Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq... par
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
2.5K vues33 diapositives
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE ) par
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Hamza Ben Marzouk
293 vues71 diapositives
ch2-hadoop-L3-2023-4p (1).pdf par
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfsalmanakbi
7 vues25 diapositives
Hadoop Introduction in Paris par
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
759 vues29 diapositives
BigData_Technologies_PL.pdf par
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfMissaouiWissal
9 vues81 diapositives
Hadoop par
HadoopHadoop
HadoopAS Stitou
888 vues35 diapositives

Similaire à Hadoop and friends : introduction(20)

Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq... par OCTO Technology
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 Technology2.5K vues
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE ) par Hamza Ben Marzouk
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 par salmanakbi
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdf
salmanakbi7 vues
Hadoop Introduction in Paris par Ted Drake
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
Ted Drake759 vues
Plongée dans la plateforme hadoop par pkernevez
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadoop
pkernevez376 vues
Aqui hadoop draft par Eric Papet
Aqui hadoop draftAqui hadoop draft
Aqui hadoop draft
Eric Papet436 vues
Presentation des outils traitements distribues par Lê Anh
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
Lê Anh140 vues
Hadoop MapReduce - OSDC FR 2009 par Olivier Grisel
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
Olivier Grisel3.5K vues
Présentation_HADOOP.pptx par bely26
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptx
bely261 vue
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa par Modern Data Stack France
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
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim... par Modern Data Stack France
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...

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
  • 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. ?????