Upload
benoit-de-chateauvieux
View
706
Download
1
Embed Size (px)
DESCRIPTION
Rapide introduction à Hadoop lors du lancement du Casablanca Hadoop & Big Data Meetup. En partenariat avec Hortonworks http://www.meetup.com/Casablanca-Hadoop-et-Big-Data-Meetup
Citation preview
1
Tél : +33 (0)1 58 56 10 00
Fax : +33 (0)1 58 56 10 01
www.octo.com© OCTO 2014
50, avenue des Champs-Elysées
75008 Paris - FRANCE
Hadoop
Benoît de CHATEAUVIEUX
Twitter: @benchato
2
L’histoire d’Hadoop
Le principe et l’architecture d’Hadoop
Un filesystem: HDFS
Un framework (historique) de traitements distribués: MapReduce
Quelques composants de l’écosystème
Démo MapReduce
Démo Hive
Présentation Ambari
De quoi allons nous parler ?
3
VM pré-cablée pour tester Hadoophttp://hortonworks.com/products/hortonworks-sandbox/
Démos sur Hortonworks Data Platform
4
Solution Open Source Big Data fournissant un socle
Distribué
Stockage
Traitement
Scalable
Scalabilité linéaire
Stockage local Rapide et peu cher
SAN 2-10$ / Go
NAS 1-5$/ Go
Local 0.05$ / Go
Clusters de « commodity hardware »
Open Source pour éviter le « vendor lock-in »
Présentation d’Hadoop – Qu’est ce que c’est ?
5
Historique Hadoop
6
Pour les systèmes décisionnels, Hadoop s’impose
comme l’architecture de référence sur la marché
•Apache HadoopOpen Source
•Cloudera
•Hortonworks
•MapR
Pure Players
•Greenplum (Pivotal)
•IBM InfoSphere BigInsights (CDH)
•Oracle Big data appliance (CDH)
•NetApp Analytics (CDH)
•…
Editeurs
•Amazon Elastic MapReduce
•Microsoft Azure HDInsight (HW)
•Hadoop on Google GCP
Cloud publique
De nombreuses
solutions d’entreprisesouvent construites autour d’Hadoop
7
Hortonworks Data Platform
8
HDFS: Hadoop Distributed File System
9
Système de fichiers distribué
Scalable horizontalement (ajout de nœuds)
Tolérant aux pannes grâce à la réplication intelligente des blocs (128Mo)
Un noeud HDFS sur chaque DataNode du cluster
HDFS est optimisé
Pour le stockage de gros fichiers en nombre réduit (< 1M de fichiers)
Pour la lecture en bloc de ces fichiers (« full scan ») Pas de Random Access
Déposer, naviguer, télécharger, supprimer des fichiers
CLI ou interface web
Le NameNode maintient la liste des fichiers et de ses blocs
Analogue à la FAT d’un système de fichiers classique
Les composants d’Hadoop – HDFS
10
Les composants d’Hadoop – Un cluster HDFS
Name node Data node
file1 #1
file2 #2
Data node
file1 #1
file1 #2
file2 #1
Data node
file2 #2
file1 #2
file2 #1
1 2
1 2
/file1
/file2
RACK 1 RACK 2
RÉSEAU LOCAL
Client
HDFS
Console web
11
MapReduce
12
Framework de programmation
Parallélisation automatique des jobs Hadoop.
Gestion transparente du mode distribué agréable pour le développeur !
MapReduce = 2 fonctions
map()
convertir une donnée en entrée en une série de paires clé/valeur
et reduce()
appliquer un traitement à l'ensemble des valeurs trouvées pour une clé
Ie: consolider les données issues du Mapper
MapReduce
Map Reduce est un frameworkStructurant en terme de développement / conception
Il faut rentrer dans le paradigme
13
Data node
file1 #1
Data node
file1 #2
Data node
file1 #3
Task tracker Task tracker Task tracker
Data node
Job tracker
Name node
Client
MR
Présentation d’Hadoop – Map Reduce
14
Le traitement est envoyé
là où réside la donnée
Principe fondamental d’Hadoop
15
Data node
file1 #1
Data node
file1 #2
Data node
file1 #3
Mapper
Reducer
Mapper
Reducer
Mapper
Task tracker Task tracker Task tracker
Data node
Job tracker
Name nodeShuffle & sort
Client
MR
Présentation d’Hadoop – Map Reduce
16
Exemple de MapReduce
Les Mapper
-lisent leur bloc ligne par ligne
-découpent les lignes en mot
-envoient ces mots aux Reducers
La phase de Shuffle & Sort
-combine les paires qui ont la même clé
-trie
Les Reducers
-somment les 1
-envoient vers la sortie (HDFS) la liste des
mots et le compte associé
17
API native en Java
Bas niveau
Rapide
Beaucoup de contrôle
Parfois complexe à utiliser pour des tâches complexes (ex: joins)
Trois éléments essentiels
Mapper : classe contenant la méthode map()
Reducer : classe contenant la méthode reduce()
Driver : classe contenant la méthode main() et configurant le job
Comment créer un job Map Reduce ?
Il est aussi possible d’écrire des jobs Map Reduce
indépendamment du langage (Shell, Python, Ruby…) grâce à
l’API Streaming Hadoop
18
Démo MapReduce
19
Déroulement
20
Le repertoire de travail
21
22
23
24
25
26
27
YARN : Le système d’opération Hadoop
28
YARN: Avant - Après
29
Explosion de l’écosystème
30
Explosion de l’écosystème
31
Requêtage SQL sur Hadoop (HiveQL)
Permet d’accéder simplement aux données
Ouvre Hadoop aux habitués du SQL
Propose des drivers ODBC pour brancher des outils externes (Tableau, etc.)
Origine:
Facebook (90%+ des job Hadoop de Facebook sont générés avec Hive)
Les requêtes HiveQL sont compilés en jobs MapReduce
Lenteur importante (aujourd’hui: pas interactif mais batch)
Faibles performances + Marché très important des BD SQL
Forte concurrence
Impala (Cloudera)
Spark SQL
Hortonworks de son côté pousse la communauté vers l’optimisation (Stinger)
Apache Hive
32
Le projet Stinger d’Hortonworks
33
Démo Hive
34
35
36
37
38
Ambari
39
Continuer à explorer l’écosystème
HBase
Streaming (Storm, …)
…
Optimisation Hadoop (jobs MapReduce, etc.)
Industrialiser le déploiement de son cluster
Chef/Puppet
Capistrano
…
Pour aller plus loin