39
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

Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 1: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 2: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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 ?

Page 3: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

3

VM pré-cablée pour tester Hadoophttp://hortonworks.com/products/hortonworks-sandbox/

Démos sur Hortonworks Data Platform

Page 4: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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 ?

Page 5: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

5

Historique Hadoop

Page 6: Casablanca Hadoop & Big Data Meetup - Introduction à 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

Page 7: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

7

Hortonworks Data Platform

Page 8: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

8

HDFS: Hadoop Distributed File System

Page 9: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 10: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 11: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

11

MapReduce

Page 12: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 13: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 14: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

14

Le traitement est envoyé

là où réside la donnée

Principe fondamental d’Hadoop

Page 15: Casablanca Hadoop & Big Data Meetup - Introduction à 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

Page 16: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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é

Page 17: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 18: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

18

Démo MapReduce

Page 19: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

19

Déroulement

Page 20: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

20

Le repertoire de travail

Page 21: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

21

Page 22: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

22

Page 23: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

23

Page 24: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

24

Page 25: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

25

Page 26: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

26

Page 27: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

27

YARN : Le système d’opération Hadoop

Page 28: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

28

YARN: Avant - Après

Page 29: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

29

Explosion de l’écosystème

Page 30: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

30

Explosion de l’écosystème

Page 31: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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

Page 32: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

32

Le projet Stinger d’Hortonworks

Page 33: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

33

Démo Hive

Page 34: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

34

Page 35: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

35

Page 36: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

36

Page 37: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

37

Page 38: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

38

Ambari

Page 39: Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

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