SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Hadoop
LA STACK DE RÉFÉRENCE
Pourquoi
 Nous avons vu la différence entre les deux possibilités de scaling pour
traiter un gros volume de données
 Hadoop a été créé pour traiter un gros volume de données de manière
distribuée
 Doug Cutting travaille chez Google après être passé chez les meilleurs
(Excite, Apple, Xerox, …)
 Il a créé le projet de moteur de recherche Lucene (porté par Apache) (nous
en reparlerons)
 Le premier vrai projet Hadoop est né chez Yahoo (10 000 cœurs !, x10
aujourd’hui)
 Utilisé par Facebook avec 30 Po de données
2
Les pilliers
 Architecturaux :
 Le stockage : HDFS
 La gestion des nœuds et des tâches : YARN
 Le stockage d’objets : Ozone
 Le Traitement : Map Reduce
 Plusieurs distributions plus ou moins open source
 Hortonworks
 Cloudera
 MapR
3
4
HDFS
 Système de stockage de fichiers (Filesystem)
 La manière dont une machine stocke ses fichiers
 Par exemple FAT32 et NTFS pour Windows, ext2, ext3 pour Linux.
 Il en existe un grand nombre en fonction des usages ou des constructeurs de
machines
 Il est :
 Distribué, c’est à dire réparti sur plusieurs machines
 Extensible : on peut l‘étendre à volonté en rajoutant des machines
 Portable : il n’est pas liée à un système d’exploitation
5
Principes
 Stocke de très gros volumes
 Composés de gros fichiers
 Taille mini 64 Mo, à comparer aux 1ko de nos Pc’s
 Il abstrait l’architecture physique de stockage
 Vu par l’utilisateur comme un disque dur unique
6
Architecture
 Deux composants principaux
 Le NameNode, qui sait ou sont rangés les fichiers et qui est unique
 Les DataNode, qui stockent des morceaux de fichiers et qui peuvent les
restituer
7
Namenode
 Deux composants principaux
 Le NameNode, qui sait ou sont rangés les fichiers
 Semble à la FAT (File allocation Table) d’un disque dur
 Il gère l’espace de noms
 Il centralise la répartition des blocs de données dans le cluster
 Il est unique
 SPOF (Single Point Of Failure)
 On peut définir un NameNode secondaire, en cas de panne
8
DataNode
 Stocke et restitue les blocs de données
 En Lecture :
 Le Namenode est interrogé pour localiser les blocs de données
 Pour chaque bloc, il dit quel DataNode est le plus apte (bande passante) à
fournir la réponse
 Réplication
 Permet d’assurer la haute disponibilité
 Périodiquement, les dataNodes indique quels blocs ils détiennent au
NameNode
 Si celui-ci estime que le donnée n’est pas présente dans assez de DataNode, il
met en route une réplication (par défaut trois réplications)
 Mécanisme qui ressemble (de loin) au RAID
9
10
11
12
Inconvénients
 Le NameNode est unique
 Il peut constituer un goulot d’étranglement si l’on accède à beaucoup de petits
fichiers (Hadoop n’est pas fait pour cela, il y a d’autres outils)
 Peut se contourner à l’aide des espaces de noms (NameSpace) qui peuvent être
servis par des NameNode différents
 C’est un SPOF (Single Point Of Failure), même si un basculement manuel vers
une copie est possible
13
YARN (Yet Another Resource Negotiator)
 Une trousse à outils
 Pour gérer les ressources du cluster
 Pour planifier (Scheduling) des tâches (Jobs)
 Est devenu un système d’exploitation distribué
 Supprime la forte dépendance entre HDFS et MapReduce
 On peut dissocier le stockage de l’exploitation des données
 Permet par exemple :
 Des applications interactives
 Le traitement de flux de données
14
YARN
 Resource Manager
 Gestionnaire de ressource global
 Accepte les tâches
 Les planifie
 Leur alloue des ressources
 Node Manager
 Surveille l’état des ressources et transmet au ResourceManager
 Containers de ressources
 Assigne les ressources allouées par le Node Manage à une application
 Autorise les applications opportunistes : elle se lancent quand des
ressources sont disponibles
15
Ozone
 Stockage objet pour HDFS
 Permet de gérer un très grand nombre de petits fichiers
 Outrepasse une limitation classique de HDFS
 Permet de gérer des milliers de nœuds
 Base consistante
 Modèle RAFT (Reliable, Replicated, Redundant and Fault-Tolerant)
 Fiable
 Répliqué
 Redondant
 Tolérant à la panne
 Tests sur https://www.katacoda.com/
16
Zookeeper
 Indispensable pour tous les outils Hadoop
 Peut être utilisé de manière indépendante de Hadoop
 Gestionnaire de configuration pour système distribués
 Haute disponibilité, services redondants
17
Map Reduce
 Un Framework (cadre) de programmation
 Et donc une nouvelle manière de penser les choses
 Une architecture maitre – esclave
 Le système découpe les données pour distribuer les tâches
 On apporte le traitement là ou sont les données, et non l’inverse
 C’est un système tolérant à la panne
 La parallèlisation est cachée à l’utilisateur, il n’a pas à la gérer
 Le processus peut être récursif
 Il travaille en mémoire
18
Map Reduce
 Découpe les tâches en deux opérations
 Map :
 On transforme chaque donnée en une autre
 Sur chaque nœud du cluster
 Reduce
 Le nœuds fond remonter leurs données vers le nœud parent
 Les données sont consolidées par le nœud parent pour fournir la (les) réponse(s)
19
Map Reduce 20
Map
 Le nœud analyse, découpe et délègue
 Associe à un couple (clef, valeur) un autre couple (clef2, valeur2)
21
Map( clef1, valeur1) -> list(clef2, valeur2)
Map (void * Document) {
int cles = 1;
foreach mot in document
Calcul(mot, cles);
}
Reduce
 Le nœud analyse, découpe et délègue
 Associe à un couple (clef, valeur) un autre couple (clef2, valeur2)
22
Reduce( clef2, list(valeur2)) -> valeur3
Reduce(int clefs, Interator values) {
int result = 0;
foreach v in values
result += v;
}
MapReduce et ses limites
 Ne peut être utilisé que par des langages de bas niveau (pas de type SQL p.ex.)
 Pas de gestion des index, donc pertes de performances (les index ont été inventés pour
cela)
 Un seul flot de données
 un jeu de donnée en sortie
 Une seule donnée en sortie
 La tolérance aux pannes et la mise à l’échelle n’optimisent pas les entrées-sorties
 Map et Reduce sont des opérations bloquantes
 i.e. tous les Map() doivent être terminés pour lancer Reduce()
23
Combiner
 On peut améliorer les choses en précalculant sur les nœuds
 P.ex. un maximum existe sur chaque nœud, il y est calculé puis envoyé à
reduce
 Cela permet de transférer moins de données
 Et de moins charger le nœud du reducer
24
Pig
 Un langage pour faire du Map Reduce
 Inspiré de Java
 Peut être aussi utilisé en Python, Javascript, Ruby ou Groovy
25
Pig : un exemple 26
input_lines = LOAD '/tmp/my-copy-of-all-pages-on-internet' AS (line:chararray);
-- Extract words from each line and put them into a pig bag
-- datatype, then flatten the bag to get one word on each
Row_words = FOREACH input_lines GENERATE FLATTEN((line)) AS word;
-- filter out any words that are just white spaces
filtered_words = FILTER words BY word MATCHES 'w+’;
-- create a group for each word
word_groups = GROUP filtered_words BY word;
-- count the entries in each group
word_count = FOREACH word_groups GENERATE (filtered_words) AS , group AS word;
-- order the records by count
ordered_word_count = ORDER word_count BY
DESC; STORE ordered_word_count INTO '/tmp/number-of-words-on-internet';
Hive
 Entrepôt de données
 Utilisateurs
 Développé par Facebook
 Utilisé par Netflix
 En place sur Amazon (un fork, c’est-à-dire Hive + des fonctionnalités ajoutées)
 Permet un requêtage par un langage proche de SQL (Hive Query Language)
 Fonctionnalité ACID
 Pas de transactions
 Indexation « faible »
 En interne, Hive traduit les requêtes
 en Graphe Orienté Acyclique (MapReduce ou Tez)
 En Jobs Spark
27
 Permet d’utiliser Hadoop avec d’autres langages que Java (p.ex. Python)
 Il s’agit d’une API vers MapReduce
 Les interfaces se font à l’aide des entrés-sorties standard Un*x (stdin,
stdout)
 Parfaitement adapté à du traitement par ligne de chaines de caractères
 La sortie de map est un couple clef-valeur séparé par une tabulation
 Hadoop trie les valeurs par clef et les passe à reduce
28
Hadoop streaming
29

Contenu connexe

Tendances

Alphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide CompletAlphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide CompletAlphorm
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopLilia Sfaxi
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6Amal Abid
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
02 big data definition
02 big data definition02 big data definition
02 big data definitionPatrick Bury
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3 Mehdi TAZI
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introductionMouna Torjmen
 

Tendances (20)

Alphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide CompletAlphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide Complet
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
02 big data definition
02 big data definition02 big data definition
02 big data definition
 
Hadoop
HadoopHadoop
Hadoop
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introduction
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 

Similaire à 10 big data hadoop

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
 
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
 
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
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
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
 
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
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptxbely26
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
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
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadooppkernevez
 
Spark, ou comment traiter des données à la vitesse de l'éclair
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'éclairAlexis Seigneurin
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Alexis Seigneurin
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Khanh Maudoux
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesSofian Djamaa
 
GTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQLGTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQLMichaël Figuière
 
Gtug nantes big table et nosql
Gtug nantes   big table et nosqlGtug nantes   big table et nosql
Gtug nantes big table et nosqlGDG Nantes
 

Similaire à 10 big data hadoop (20)

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 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 )
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
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
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
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
 
Hadoop
HadoopHadoop
Hadoop
 
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
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptx
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
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
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadoop
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
Spark, ou comment traiter des données à la vitesse de l'éclair
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
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
Hdfs
HdfsHdfs
Hdfs
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop Performances
 
GTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQLGTUG Nantes (Dec 2011) - BigTable et NoSQL
GTUG Nantes (Dec 2011) - BigTable et NoSQL
 
Gtug nantes big table et nosql
Gtug nantes   big table et nosqlGtug nantes   big table et nosql
Gtug nantes big table et nosql
 

Plus de Patrick Bury

16 graph databases
16 graph databases16 graph databases
16 graph databasesPatrick Bury
 
15 map reduce on azure
15 map reduce on azure15 map reduce on azure
15 map reduce on azurePatrick Bury
 
14 big data gitlab
14 big data gitlab14 big data gitlab
14 big data gitlabPatrick Bury
 
13 big data docker
13 big data docker13 big data docker
13 big data dockerPatrick Bury
 
08 big data dataviz
08 big data dataviz08 big data dataviz
08 big data datavizPatrick Bury
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreducePatrick Bury
 
06 cloud souverain
06 cloud souverain06 cloud souverain
06 cloud souverainPatrick Bury
 
05 creation instance ovh
05 creation instance ovh05 creation instance ovh
05 creation instance ovhPatrick Bury
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseursPatrick Bury
 
03 big data stockage
03 big data stockage03 big data stockage
03 big data stockagePatrick Bury
 
03 big data échelle
03 big data échelle03 big data échelle
03 big data échellePatrick Bury
 
02 big data definition
02 big data definition02 big data definition
02 big data definitionPatrick Bury
 
01 big data introduction
01 big data introduction01 big data introduction
01 big data introductionPatrick Bury
 
16 graph databases
16 graph databases16 graph databases
16 graph databasesPatrick Bury
 
15 map reduce on azure
15 map reduce on azure15 map reduce on azure
15 map reduce on azurePatrick Bury
 

Plus de Patrick Bury (20)

100 évaluation
100 évaluation100 évaluation
100 évaluation
 
16 graph databases
16 graph databases16 graph databases
16 graph databases
 
15 map reduce on azure
15 map reduce on azure15 map reduce on azure
15 map reduce on azure
 
11 big data aws
11 big data aws11 big data aws
11 big data aws
 
14 big data gitlab
14 big data gitlab14 big data gitlab
14 big data gitlab
 
13 big data docker
13 big data docker13 big data docker
13 big data docker
 
08 big data dataviz
08 big data dataviz08 big data dataviz
08 big data dataviz
 
12 big data azure
12 big data azure12 big data azure
12 big data azure
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreduce
 
07 big data sgbd
07 big data sgbd07 big data sgbd
07 big data sgbd
 
06 cloud souverain
06 cloud souverain06 cloud souverain
06 cloud souverain
 
05 creation instance ovh
05 creation instance ovh05 creation instance ovh
05 creation instance ovh
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseurs
 
03 big data stockage
03 big data stockage03 big data stockage
03 big data stockage
 
03 big data échelle
03 big data échelle03 big data échelle
03 big data échelle
 
02 big data definition
02 big data definition02 big data definition
02 big data definition
 
01 open data
01 open data01 open data
01 open data
 
01 big data introduction
01 big data introduction01 big data introduction
01 big data introduction
 
16 graph databases
16 graph databases16 graph databases
16 graph databases
 
15 map reduce on azure
15 map reduce on azure15 map reduce on azure
15 map reduce on azure
 

10 big data hadoop

  • 1. Hadoop LA STACK DE RÉFÉRENCE
  • 2. Pourquoi  Nous avons vu la différence entre les deux possibilités de scaling pour traiter un gros volume de données  Hadoop a été créé pour traiter un gros volume de données de manière distribuée  Doug Cutting travaille chez Google après être passé chez les meilleurs (Excite, Apple, Xerox, …)  Il a créé le projet de moteur de recherche Lucene (porté par Apache) (nous en reparlerons)  Le premier vrai projet Hadoop est né chez Yahoo (10 000 cœurs !, x10 aujourd’hui)  Utilisé par Facebook avec 30 Po de données 2
  • 3. Les pilliers  Architecturaux :  Le stockage : HDFS  La gestion des nœuds et des tâches : YARN  Le stockage d’objets : Ozone  Le Traitement : Map Reduce  Plusieurs distributions plus ou moins open source  Hortonworks  Cloudera  MapR 3
  • 4. 4
  • 5. HDFS  Système de stockage de fichiers (Filesystem)  La manière dont une machine stocke ses fichiers  Par exemple FAT32 et NTFS pour Windows, ext2, ext3 pour Linux.  Il en existe un grand nombre en fonction des usages ou des constructeurs de machines  Il est :  Distribué, c’est à dire réparti sur plusieurs machines  Extensible : on peut l‘étendre à volonté en rajoutant des machines  Portable : il n’est pas liée à un système d’exploitation 5
  • 6. Principes  Stocke de très gros volumes  Composés de gros fichiers  Taille mini 64 Mo, à comparer aux 1ko de nos Pc’s  Il abstrait l’architecture physique de stockage  Vu par l’utilisateur comme un disque dur unique 6
  • 7. Architecture  Deux composants principaux  Le NameNode, qui sait ou sont rangés les fichiers et qui est unique  Les DataNode, qui stockent des morceaux de fichiers et qui peuvent les restituer 7
  • 8. Namenode  Deux composants principaux  Le NameNode, qui sait ou sont rangés les fichiers  Semble à la FAT (File allocation Table) d’un disque dur  Il gère l’espace de noms  Il centralise la répartition des blocs de données dans le cluster  Il est unique  SPOF (Single Point Of Failure)  On peut définir un NameNode secondaire, en cas de panne 8
  • 9. DataNode  Stocke et restitue les blocs de données  En Lecture :  Le Namenode est interrogé pour localiser les blocs de données  Pour chaque bloc, il dit quel DataNode est le plus apte (bande passante) à fournir la réponse  Réplication  Permet d’assurer la haute disponibilité  Périodiquement, les dataNodes indique quels blocs ils détiennent au NameNode  Si celui-ci estime que le donnée n’est pas présente dans assez de DataNode, il met en route une réplication (par défaut trois réplications)  Mécanisme qui ressemble (de loin) au RAID 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. Inconvénients  Le NameNode est unique  Il peut constituer un goulot d’étranglement si l’on accède à beaucoup de petits fichiers (Hadoop n’est pas fait pour cela, il y a d’autres outils)  Peut se contourner à l’aide des espaces de noms (NameSpace) qui peuvent être servis par des NameNode différents  C’est un SPOF (Single Point Of Failure), même si un basculement manuel vers une copie est possible 13
  • 14. YARN (Yet Another Resource Negotiator)  Une trousse à outils  Pour gérer les ressources du cluster  Pour planifier (Scheduling) des tâches (Jobs)  Est devenu un système d’exploitation distribué  Supprime la forte dépendance entre HDFS et MapReduce  On peut dissocier le stockage de l’exploitation des données  Permet par exemple :  Des applications interactives  Le traitement de flux de données 14
  • 15. YARN  Resource Manager  Gestionnaire de ressource global  Accepte les tâches  Les planifie  Leur alloue des ressources  Node Manager  Surveille l’état des ressources et transmet au ResourceManager  Containers de ressources  Assigne les ressources allouées par le Node Manage à une application  Autorise les applications opportunistes : elle se lancent quand des ressources sont disponibles 15
  • 16. Ozone  Stockage objet pour HDFS  Permet de gérer un très grand nombre de petits fichiers  Outrepasse une limitation classique de HDFS  Permet de gérer des milliers de nœuds  Base consistante  Modèle RAFT (Reliable, Replicated, Redundant and Fault-Tolerant)  Fiable  Répliqué  Redondant  Tolérant à la panne  Tests sur https://www.katacoda.com/ 16
  • 17. Zookeeper  Indispensable pour tous les outils Hadoop  Peut être utilisé de manière indépendante de Hadoop  Gestionnaire de configuration pour système distribués  Haute disponibilité, services redondants 17
  • 18. Map Reduce  Un Framework (cadre) de programmation  Et donc une nouvelle manière de penser les choses  Une architecture maitre – esclave  Le système découpe les données pour distribuer les tâches  On apporte le traitement là ou sont les données, et non l’inverse  C’est un système tolérant à la panne  La parallèlisation est cachée à l’utilisateur, il n’a pas à la gérer  Le processus peut être récursif  Il travaille en mémoire 18
  • 19. Map Reduce  Découpe les tâches en deux opérations  Map :  On transforme chaque donnée en une autre  Sur chaque nœud du cluster  Reduce  Le nœuds fond remonter leurs données vers le nœud parent  Les données sont consolidées par le nœud parent pour fournir la (les) réponse(s) 19
  • 21. Map  Le nœud analyse, découpe et délègue  Associe à un couple (clef, valeur) un autre couple (clef2, valeur2) 21 Map( clef1, valeur1) -> list(clef2, valeur2) Map (void * Document) { int cles = 1; foreach mot in document Calcul(mot, cles); }
  • 22. Reduce  Le nœud analyse, découpe et délègue  Associe à un couple (clef, valeur) un autre couple (clef2, valeur2) 22 Reduce( clef2, list(valeur2)) -> valeur3 Reduce(int clefs, Interator values) { int result = 0; foreach v in values result += v; }
  • 23. MapReduce et ses limites  Ne peut être utilisé que par des langages de bas niveau (pas de type SQL p.ex.)  Pas de gestion des index, donc pertes de performances (les index ont été inventés pour cela)  Un seul flot de données  un jeu de donnée en sortie  Une seule donnée en sortie  La tolérance aux pannes et la mise à l’échelle n’optimisent pas les entrées-sorties  Map et Reduce sont des opérations bloquantes  i.e. tous les Map() doivent être terminés pour lancer Reduce() 23
  • 24. Combiner  On peut améliorer les choses en précalculant sur les nœuds  P.ex. un maximum existe sur chaque nœud, il y est calculé puis envoyé à reduce  Cela permet de transférer moins de données  Et de moins charger le nœud du reducer 24
  • 25. Pig  Un langage pour faire du Map Reduce  Inspiré de Java  Peut être aussi utilisé en Python, Javascript, Ruby ou Groovy 25
  • 26. Pig : un exemple 26 input_lines = LOAD '/tmp/my-copy-of-all-pages-on-internet' AS (line:chararray); -- Extract words from each line and put them into a pig bag -- datatype, then flatten the bag to get one word on each Row_words = FOREACH input_lines GENERATE FLATTEN((line)) AS word; -- filter out any words that are just white spaces filtered_words = FILTER words BY word MATCHES 'w+’; -- create a group for each word word_groups = GROUP filtered_words BY word; -- count the entries in each group word_count = FOREACH word_groups GENERATE (filtered_words) AS , group AS word; -- order the records by count ordered_word_count = ORDER word_count BY DESC; STORE ordered_word_count INTO '/tmp/number-of-words-on-internet';
  • 27. Hive  Entrepôt de données  Utilisateurs  Développé par Facebook  Utilisé par Netflix  En place sur Amazon (un fork, c’est-à-dire Hive + des fonctionnalités ajoutées)  Permet un requêtage par un langage proche de SQL (Hive Query Language)  Fonctionnalité ACID  Pas de transactions  Indexation « faible »  En interne, Hive traduit les requêtes  en Graphe Orienté Acyclique (MapReduce ou Tez)  En Jobs Spark 27
  • 28.  Permet d’utiliser Hadoop avec d’autres langages que Java (p.ex. Python)  Il s’agit d’une API vers MapReduce  Les interfaces se font à l’aide des entrés-sorties standard Un*x (stdin, stdout)  Parfaitement adapté à du traitement par ligne de chaines de caractères  La sortie de map est un couple clef-valeur séparé par une tabulation  Hadoop trie les valeurs par clef et les passe à reduce 28 Hadoop streaming
  • 29. 29