tech day hadoop, spark

44
Hadoop et le "Big Data" La Technologie Hadoop au coeur des projets "Big Data".

Upload: arrow-institute

Post on 21-Jun-2015

765 views

Category:

Technology


3 download

DESCRIPTION

Introduction et retour d’expérience sur les technologie Hadoop et Spark.

TRANSCRIPT

Page 1: Tech day hadoop, Spark

Hadoop et le "Big Data"

La Technologie Hadoop au coeur des projets "Big Data".

Page 2: Tech day hadoop, Spark

Hadoop : Qui suis-je ?Stéphane Goumard

● Expertise environnement Java.○ Architecte technique.○ Consultant.○ Formateur.

● Responsable Technique du Projet de Recherche et Innovation “Big Data”, “Square Predict”.

Page 3: Tech day hadoop, Spark

Hadoop et le "Big Data"

Le “Big Data”

Page 4: Tech day hadoop, Spark

Big Data : Quoi de neuf ?

Facabook warehouses 180 petabytes of data a year.

Twitter manages 1.2 million deliveries per second

Nouveaux Métiers “Data Scientist”

Nouveaux enjeux

économiques

Nouvelles technologies

Page 5: Tech day hadoop, Spark

Big Data : Quoi de neuf ?

“Big Data is data that exceeds the processing capacity of coventionnal database systems. The data is too big, move too fast, or doesn’t fit the strictures of your

database architectures. To gain value from this data, you must choose an alternative way to process it.”

Edd Dumbill, O’Reilly

Page 6: Tech day hadoop, Spark

Hadoop et le "Big Data"

Hadoop.

Page 7: Tech day hadoop, Spark

Hadoop : Définition

“Hadoop est le framework le plus utilisé actuellement pour manipuler et faire du Big Data.

Apache Hadoop est un framework qui va permettre le traitement de données massives sur un cluster allant

d’une à plusieurs centaines de machines.

C’est un projet open source (Apache v2 licence).”

Page 8: Tech day hadoop, Spark

Hadoop : Historique

Création de Nutchpar Doug Cutting et Mike Cafarella

Google publie GFS

& Map Reduce

Doug Cuttingajoute DFS &

Map Reduce à Nutch

Yahoo embauche Cutting &

adopte Hadoop

Hadoop est elu Top Project

Apache

Facebook sort Hive le support du SQL pour

Hadoop

Cloudera embauche

Cutting

Page 9: Tech day hadoop, Spark

Hadoop est Robuste !

Page 10: Tech day hadoop, Spark

Hadoop : Système d’exploitation de la donnée

Page 11: Tech day hadoop, Spark

Hadoop : Références.

En 10 ans, son adoption ne fait plus aucun doute !

Page 12: Tech day hadoop, Spark

Hadoop : HDFS“HDFS (Hadoop Distributed File System) est un système de fichiers Java

utilisé pour stocker des données structurées ou non sur un ensemble deserveurs distribués.”

● Node (Master/slave) : Dans une architecture Hadoop, chaque membre pouvant traiter des données est appelé Node (Noeud).

● Un seul d’entre eux peut être Master même s’il peut changer au cours de la vie du cluster, il s’agit du NameNode. Il est responsable de la localisation des données dans le cluster.

● Les autres nœuds, stockant les données, sont des slaves appelés DataNode.

● Le NameNode est donc un Single Point Of Failure (SPOF) dans un cluster Hadoop. (Hadoop 2.0, introduit un failover automatisé).

Page 13: Tech day hadoop, Spark

Hadoop : HDFS● BlockSize : Taille unitaire de stockage

(généralement 64 Mo ou 128 Mo). C’est à dire qu’un fichier de 1 Go(et une taille de block de 128 Mo) sera divisé en 8 blocks.

● Réplication Factor : C’est le nombre de copies d’une donnée devant être réparties sur les différents noeuds du cluster. (souvent 3, c’est à dire une primaire et deux secondaires)

● Processus de lecture HDFS :○ Interrogation du NameNode pour

localiser les adresses des Nodeshébergeant les blocs sous-jacents les plus proches.

● Processus d’écriture ● Écriture sur le DataNode.● DataNode communique ses blocs

au NamenNde. Replication..● Write-once.

Page 14: Tech day hadoop, Spark

● Alternatives :○ Hbase : Base NoSql insipirée de Google BigTable. Utilisée

conjointement au système de fichiers HDFS, il facilite la distribution des données sur plusieurs Noeuds. On compare souvent Hbase => HDFS à ce que représente Json => XML.

○ MapR : Propose une atlernative à HDFS sans SPOF. C’est un fork de Hbase en mode propriétaire.

○ Cassandra : Initiée par Facebook qui l’abandonne au profit de Hbase, c’est une base NoSql qui optimise les opérations en écriture.Comme Hbase, elle ne remplace pas HDFS mais offre un moyen supplémentaire de l’exploiter.

○ Cloud : Les offres cloud peuvent être une alternative Amazon S3, Kosmix’s CloudStore….

Hadoop : HDFS

Page 15: Tech day hadoop, Spark

Hadoop : Map Reduce.“A l’origine crée par Google pour son outil de recherche web.

C’est un framework qui permet le décomposition d’une requête importante en un ensemble de requêtes plus petites qui produiront chacune un sous

ensemble du résultat final : c’est la fonction Map. L’ensemble des résultats est traité (agrégation, filtre) : c’est la fonction Reduce.”

La première phase

(Map) est une

étape d’ingestion et

de transformation

des données sous

la forme de paires

clé/valeur.

Regroupement et tri

par clé et chaque

groupe est transmis

à une fonction

Reduce.

(Reduce) est une

étape de fusion des

enregistrements

par clé pour former

le résultat final.

Page 16: Tech day hadoop, Spark

Hadoop : Map Reduce.1. savoir être et

2. savoir faire

3. sans faire savoir

1 - Configuration du job (définie par l’utilisateur)2 - Découpage du jeu de données et distribution sur le cluster (géré par Hadoop)3 - Démarrage de chaque tâche Map avec son propre jeu de données issu du découpage (géré par Hadoop)4 - Exécution en parallèle de chaque fonction Map (implémentée par l’utilisateur)5 - Les sorties des fonctions Map sont triées par clé pour former de nouvelles unités de données (gérées par Hadoop)6 - Démarrage des tâches Reduce avec son propre jeu de données issu du tri (géré par Hadoop)7 - Exécution en parallèle de chaque fonction Reduce (implémentée par l’utilisateur)8 - Assemblage du résultat des opérations Reduce et Stockage (gérés par Hadoop)

Page 17: Tech day hadoop, Spark

Hadoop : Map Reduce.

● JobTracker :○ Coordonne les Job Ma Reduce

sur le cluster, distribue les tâches d’exécution (Map ou Reduce) au TaskTracker.

○ Cohabite avec le NameNode. une instance par cluster.

● TaskExecutor : ○ Exécute les tâches d'exécution

(Map ou Reduce)

○ Notification JobTracker (failover, erreur…)

○ Cohabite avec un DataNode. Autant d’instances que de nœuds esclaves.

La communication entre les nœuds (NameNode/DataNode, JobTracker/TaskTracker) s’effectue par RPC.

Page 18: Tech day hadoop, Spark

Hadoop : Map Reduce.public class WordCountReducer extends MapReduceBase implements

Reducer {

public void reduce(Text key, Iterator values,

OutputCollector output, Reporter reporter )

throwsIOException {

int nbOcc = 0;

while (values.hasNext ()) {

nbOcc += values.next ().get();

}

output.collect (key, new IntWritable (nbOcc));}}

class WordCountMapper extends MapReduceBase implementsMapper{

private final static IntWritable mDefOcc = newIntWritable (1);

private Text mWord = new Text();

public void map(LongWritable key, Text value, OutputCollector

output, Reporter reporter ) throwsIOException {

String lLine = value.toString ();

StringTokenizer lIt = new StringTokenizer(lLine);

while (lIt.hasMoreTokens()) {

mWord.set(lIt.nextToken());

output.collect(mWord, mDefOcc);}}}

public class WordCount {

public static void main(String[] args) throws Exception{

JobConf conf = new JobConf(WordCount. class);

conf.setJobName ("Compteur de mots" );

conf.setMapperClass (WordCountMapper. class);

onf.setReducerClass (WordCountReducer. class);

conf.setInputFormat (TextInputFormat. class);

conf.setOutputFormat (TextOutputFormat. class);

FileInputFormat.setInputPaths (conf, newPath(args[0]));

FileOutputFormat.setOutputPath (conf, newPath(args[1]));

JobClient.runJob (conf);

}

Page 19: Tech day hadoop, Spark

Hadoop : YARNYARN (Yet-Another-Resource-Negotiator) est aussi appelé MapReduce 2.0. Ce n’est pas une refonte mais une évolution du framework MapReduce.

● YARN répond aux problématiques suivantes du Map Reduce :

○ Problème de limite de “Scalability” notamment par une meilleure séparation de la gestion de l’état du cluster et des ressources.■ ~ 4000 Noeuds, 40 000 Tâches concourantes.

○ Problème d’allocation des ressources.

○ Un support et un protocole clairs pour faciliter le développement de frameworks transversaux.

Valeurs codées en dûr.Des tâches Map sont en attentes alors que des slots de tâche reduce sont libres.

Page 20: Tech day hadoop, Spark

Hadoop : YARN

JT NN

TE DN TE DN TE DN

Cluster Apache Hadoop Classique

ResourceManager

AplicationMaster AM AM

TE DN TE DN TE DN

Le Job Tracker a trop de responsabilités.● Gérer les ressources du cluster.● Gérer tous les jobs

○ Allouer les tâches et les ordonnancer.○ Monitorer l'exécution des tâches.○ Gérer le fail-over.○ ………..;

ResourceManager et Application Master.● ResourceManager remplace le JobTracker

et ne gère que les ressources du Cluster.

● Une entité Application Master est allouée par Application pour gérer les tâches.

● Application Master est déployée sur les noeuds esclaves.

Re-penser l’architecture du Job Tracker.

● Séparer la gestion des ressources du clusterde la coordination des jobs.

● Utiliser les noeuds esclaves pour gérer les jobs.

Page 21: Tech day hadoop, Spark

ResourceManager

AplicationMaster AM AM

NodeManager DN NM DN NM DN

Cluster Apache Hadoop 2.0

Node Manager.

● Permet d’exécuter plus de tâches qui ont du sens pour l’Application Master, pas seulement du Map et du Reduce.

● La taille des ressources est variable (RAM, CPU, network….). Plus de valeurs codées en dur qui nécessitent une redémarrage.

~ 10K Noeuds par cluster.

~ 100 K Tâches concourantes

Hadoop : YARN

Page 22: Tech day hadoop, Spark

Hadoop : YARN

Hadoop se transforme en OS de la donnée !

● Client et cluster peuvent utiliser des versions différentes.

● Des protocoles de communication standardisés et documentés.

● Évolution du framework progressive avec rétro-compatibilité sans destruction des services.

Page 23: Tech day hadoop, Spark

Hadoop : HBaseArchitecture HBase

Représentation des données Hbase

- Hbase est :● Insipirée par Google Big Table.● Distribuée et orientée Colonne.● Multidimensionnelle.● Hautement disponible.● Haute performance.● Système de stockage.● Souvent utilisée avec HDFS.

- Pourquoi HBase + HDFS ?● Une représentation orientée

colonne du HDFS.● Partitionnement et tri automatique

+Rapide +GroupBy +OrderBy● Ajout/Suppression à chaud des

Noeuds.● Accès Read/Write des données

aléatoires, dialogues directs avec les noeuds esclaves.

Page 24: Tech day hadoop, Spark

Hadoop : Hive● C’est quoi Hive ?

○ Initié par Facebook.■ Rentabiliser les ingénieurs SQL.■ Démocratiser Map/Reduce.

○ Infrastructure pour entrepôt de données “Data WareHouse”

● Comment ça marche ?○ Hive a pour fondation Hadoop.○ Hive structure les données tables, colonnes, lignes.○ Hive stocke les données dans HDFS.○ Hive compile les requêtes SQL en Job Map/Reduce.○ Hive propose un langage de requête SQL HIVEQL DDL et DML.

Page 25: Tech day hadoop, Spark

Hadoop : HiveChargement données depuis HDFS

Création de tables.

Sélection et insertion de résultats.

Page 26: Tech day hadoop, Spark

Hadoop : Vue d’ensemble.

Page 27: Tech day hadoop, Spark

Hadoop : Autres composants

FlumeSolution de collecte et d’agrégation de log native avec HDFS.

KnoxGestion de la sécurité et authentification.

WebHDFSServie REST pour HDFS.

MahoutDataMining.

Besoin temps réels “Streaming”Drill, Tez, Spark, Sorm…..

Et la gestion des transactions ????Déjà dans toutes les têtes surtout celle de Doug

Cutting (le père d’Hadoop) !!

Page 28: Tech day hadoop, Spark

Hadoop : Les DistributionsPourquoi des distributions ?

● Pour regrouper de façon homogène les différentes extensions.

● Pour faciliter l’installation, la diffusion, le support.

● Pour permettre d’incuber des “Business Model” pour les éditeurs qui contribuent largement à Hadoop.

● 3 acteurs majeurs dans l'écosystème :○ Horton Works○ Cloudera○ MapR

Page 29: Tech day hadoop, Spark

Hadoop : Les Distributions

● 2011 Yahoo.● Composants Open Source.● 1:1 avec Hadoop.

● Projets reversés à Hadoop :○ YARN○ HCatalog○ Ambari

Page 30: Tech day hadoop, Spark

Hadoop : Les Distributions

● Commercial et Open Source.● Hadoop + Composants Maison.

● Composants propriétaires :○ Impala (requêtes temps réel)○ Cloudera Manager (gestion du cluster,

déploiement..)● Projets reversés à Hadoop :○ Hadoop Common (Utilitaires)○ Hue (SDK IHM)○ Whirr (SAAS Hadoop)

Page 31: Tech day hadoop, Spark

Hadoop : Les Distributions

● 2009, Commercial et Open Source● Refonte du coeur de la plateforme (MapR

FS et MapR MapReduce) ● Optimisé pour Hbase.

● Projets reversés à Hadoop :○ Hbase, Pig, Hive, Mahout○ Sqoop, Flume.

● Composants propriétaires :○ Cascading (Usine de dev Java)○ Vaidya (Perf, Benchmark)○ Drill (Requêtes temps réel)

Page 32: Tech day hadoop, Spark

Hadoop : Les Distributions

Comment choisir une solution Hadoop ?● Modèle économique (Open Source, Commercial..).

● Les composants.

● Maturité de la solution, le support, la documentation, le retour d'expériences.

● Le rapport avec Hadoop, la rapidité des évolutions.

● Partenariats (hébergeurs…), compatibilité avec les produits satellites.

Page 33: Tech day hadoop, Spark

Hadoop et le "Big Data"

Le Projet Spark.

Page 34: Tech day hadoop, Spark

Hadoop : Qu’est que Spark ?“Apache Spark is a powerful open source processing engine for Hadoop data

built around speed, ease of use, and sophisticated analytics. It was originally developed in 2009 in UC Berkeley’s AMPLab, and open sourced in

2010.”● Ce n’est pas une version modifiée de Hadoop.

● C’est un moteur Map-Reduce plus évolué, plus rapide.○ Utilisation de la mémoire pour optimiser les traitements.○ Des API’S pour faciliter et optimiser les étapes d’analyses.○ Permettre le traitement temps réel des données.

● Compatible avec le système de Stockage de Hadoop (HDFS, Hive, SequenceFiles…)

Page 35: Tech day hadoop, Spark

Hadoop : Spark, plus rapide

Lent, provoqué par les IO, Sérialision, Réplication

Utilisation d’une mémoire partagée RDD’s 100x plus rapide, 10x moins d’itérations.

RDD’s (Resilient Distributed DataSet)- Une collection d’objets distribués, mise en cache en mémoire au travers du cluster.

- Une API’ pour manipuler ces objets “Operators”

- Système de fail over automatique.

Logistic regression in Hadoop and Spark

Page 36: Tech day hadoop, Spark

Hadoop : Spark, facile à utiliser.● Une liste d’Operators pour faciliter la manipulation des données au

travers des RDD’S.

Map, filter, groupBy, sort, join, leftOuterJoin, ritghtOuterJoin, reduce, count, reduceByKey, groupByKey, first, union, cross, sample, cogroup, take, partionBy, pipe, save…..

● Compatible avec les langages de programmation fonctionnel Scala, Python...

Page 37: Tech day hadoop, Spark

Hadoop : Spark, un Framework analytique.

Shark : Moteur de requête SQL, basé sur le coeur de Spark (in memory), il permet d'exécuter des requêtes hive sans modification 100x plus rapidement.

MLLib : Library d’algorithmes d’analyses de données (data mining), scalable et optimisé (limite des interactions, RDD’s), Kmeans, ALS, L2-> L1...

Calling MLlib in Scala

Spark Streaming : A opposer aux traitements “batch”, mise à jour d’un état dynamiquement, piloté par des évènements sur les données “event processing”. (Filtre de Spam, analyse de click, reporting temps réel…)

Counting tweets on a sliding window

Page 38: Tech day hadoop, Spark

Hadoop et le "Big Data"

Square Predict, Cas d’utilisation.

Page 39: Tech day hadoop, Spark

Hadoop : Cas d’utilisation Square Predict“Le projet Square Predict , valoriser et monétiser l'énorme quantité de données à disposition des assureurs”

“L’objectif de Square Predict est de générer des prédictions utiles au business des assureurs par l’analyse de leur données fusionnées avec l’Open Data.”

Le projet Square Predict est un projet Open Source de 2,76 M€ sur 3 ans (de 09/2013 à 09/2016).

Page 40: Tech day hadoop, Spark

Hadoop : Cas d’utilisation Square Predict

“Estimation en temps réel de l’impact (étendue + sévérité) des dégâts causés par un évènement climatique de grande ampleur”

“Identification des facteurs expliquant la hausse de la sinistralité incendie/dégâts des eaux par zones géographiques”

“Identification des facteurs expliquant la hausse de la sinistralité automobiles ”

Page 41: Tech day hadoop, Spark

Hadoop : Architecture premier niveau.

Page 42: Tech day hadoop, Spark

Hadoop : Architecture second niveau.

Page 43: Tech day hadoop, Spark

Hadoop : De vrais projets.

● EDF : Nouveau compteur électrique “Linky”

● Joint-venture (Telefonica, T-Mobile, Orange et Vodafone) :“Le projet Webe, Traiter en temps réel les données générées par des dizaines de millions d'abonnés. A la clé, l'idée est de permettre aux annonceurs de proposer des services contextualisés et personnalisés, mais aussi des promotions et offres sur-mesure géolocalisées en fonction de zones prédéfinies “

● Ericsson : le Big Data au service de l'IP TV“Personnaliser programmes et publicités en fonction de la météo, Nous corrélons les données des usages IP TV avec des informations météorologiques mais aussi sociales : vacances scolaires, évènements politiques ou sportifs, campagnes publicitaires…”

● TapValue : Le retargeting multicanal“Retargeting publicitaire multicanal et géolocalisé”, L'application présentée par cette start-up française, baptisée Profilematch, permet de traquer le comportement de l'utilisateur quel que soit le terminal qu'il utilise : PC, tablette, smartphone... Et lui proposer un contenu personnalisé adapté à chaque écran, en fonction de ses interactions avec la marque.”

Trophées de l'innovation

Big Data 2014

Page 44: Tech day hadoop, Spark

Hadoop et le "Big Data"

Fin, Merci, des Questions ?