Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop

Post on 02-Jul-2015

706 views 1 download

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

Transcript of 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

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