API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture



Documents pareils
MapReduce et Hadoop. Alexandre Denis Inria Bordeaux Sud-Ouest France ENSEIRB PG306

Introduction à MapReduce/Hadoop et Spark

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Certificat Big Data - Master MAthématiques

Programmation parallèle et distribuée

Programmation parallèle et distribuée

Notes de cours Practical BigData

7 Développement d une application de MapReduce

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Introduction à Hadoop & MapReduce

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Programmation parallèle et distribuée (Master 1 Info )

Big Data Concepts et mise en oeuvre de Hadoop

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

Introduc)on à Map- Reduce. Vincent Leroy

Cartographie des solutions BigData

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

HADOOP ET SON ÉCOSYSTÈME

Cloud Computing MapReduce Année académique 2014/15

Hadoop : une plate-forme d exécution de programmes Map-Reduce

Labs Hadoop Février 2013

L écosystème Hadoop Nicolas Thiébaud Tuesday, July 2, 13

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop


Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Offre formation Big Data Analytics

20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

Ricco Rakotomalala R.R. Université Lyon 2

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Hadoop : une plate-forme d exécution de programmes Map-Reduce

Introduction aux algorithmes MapReduce. Mathieu Dumoulin (GRAAL), 14 Février 2014

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

BIG DATA en Sciences et Industries de l Environnement

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

Big Data. Les problématiques liées au stockage des données et aux capacités de calcul

Big Data : utilisation d un cluster Hadoop HDFS Map/Reduce HBase

Document réalisé par Khadidjatou BAMBA

Hadoop / Big Data MBDS. Benjamin Renaut <renaut.benjamin@tokidev.fr>

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Panorama des solutions analytiques existantes

Les journées SQL Server 2013

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Les quatre piliers d une solution de gestion des Big Data

4 Exemples de problèmes MapReduce incrémentaux

LOG4430 : Architecture logicielle et conception avancée

Tables Rondes Le «Big Data»

Programmation Par Objets

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Avant-propos. Organisation du livre

Anticiper et prédire les sinistres avec une approche Big Data

Synchro et Threads Java TM

Développement Logiciel

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Corrigé des exercices sur les références

R+Hadoop = Rhadoop* Des logiciels libres complémentaires, une implémentation, une réponse au nouveau paradigme du bigdata!

Remote Method Invocation (RMI)

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

Livre. blanc. Solution Hadoop d entreprise d EMC. Stockage NAS scale-out Isilon et Greenplum HD. Février 2012

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce

Our experience in using Apache Giraph for computing the diameter of large graphs. Paul Bertot - Flavian Jacquot

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Professeur-superviseur Alain April

Importation et exportation de données dans HDFS

Pentaho Business Analytics Intégrer > Explorer > Prévoir

Programmer en JAVA. par Tama

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Les technologies du Big Data

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Stephan Hadinger, Sr. Mgr Solutions Architecture, AWS. Salon du Big Data 11 mars 2015

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Titre : La BI vue par l intégrateur Orange

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Plan du cours. Historique du langage Nouveautés de Java 7

Auto-évaluation Programmation en Java

Design patterns. Design patterns - définition. Design patterns - avantages

M2 GL UE DOC «In memory analytics»

Analytics & Big Data. Focus techniques & nouvelles perspectives pour les actuaires. Université d Eté de l Institut des Actuaires Mardi 8 juillet 2014

Environnements de développement (intégrés)

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

Création d une application JEE

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

RMI le langage Java XII-1 JMF

Chapitre 10. Les interfaces Comparable et Comparator 1

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC RAPPORT DE PROJET PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

LOG4430 : Architecture logicielle et conception avancée

Big Data, un nouveau paradigme et de nouveaux challenges

Projet Xdata. Cinequant, Data Publica, EDF, ESRI, Hurence, INRIA, Institut Mines Telecom, La Poste, Orange, Veolia

TP1 : Initiation à Java et Eclipse

Département Informatique 5 e année Hadoop: Optimisation et Ordonnancement

Hadoop, les clés du succès

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Remote Method Invocation Les classes implémentant Serializable

Transcription:

API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant notamment de faciliter la création d applications distribuées grâce à son traitement efficace de grandes quantités de données. Le Big Data est aujourd hui une réalité et divers exemples en témoigne. Le New York Times convertit 4 millions d articles en PDF en 36h (lien) et Facebook peut analyser aux alentours de 220 millions de profils en 11h (lien). Les performances de cet outil sont extrêmement bonnes, et on peut penser que dans le cadre des Data Warehouses, le traitement efficace d une grande quantité de données est un gain de temps considérable pour leur exploitation future. Architecture Hadoop est constitué de plusieurs modules et projets qui lui sont reliés. Parmi les principaux, on distingue les suivants : HDFS : un système de fichiers distribué permettant de stocker de large volume de données sur un grand nombre de machine. MapReduce : une implémentation de l algorithme permettant un traitement efficace des calculs parallèles. Apache HBase : une base de données distribuée disposant d un stockage adapté aux grandes volumétries. Apache Hive, Apache Pig : des logiciels d analyse de données permettant d utiliser Hadoop. On se limitera ici à comprendre le cœur de l architecture, à savoir Hadoop Distributed File System et MapReduce avant de voir plus en détail comment construire un programme Java utilisant ces concepts. 1

HDFS Une architecture HDFS, ou cluster HDFS repose sur deux types de composants : Un Namenode, gérant les métadonnées, l arborescence des fichiers, ainsi que l espace des noms. Un Datanode, stockant et restituant l ensemble des blocs de données grâce aux interrogations du Namenode. Le Namenode est le composant principal et est unique par cluster. Sans lui, on peut considérer que tous les fichiers sont perdus car il n existe pas de moyen de les reconstituer à partir d un bloc. Il centraliste la lecture mais aussi l écriture : cette dernière est propagée sur plusieurs Datanodes et permet la duplication sur différents nœuds et différentes machines. HDFS met en œuvre le pattern master- worker, un modèle de traitement parallèle d une ou de plusieurs opérations à travers plusieurs workers (=Datanode) et un master (=Namenode). Source : Site officiel http://hadoop.apache.org Le système HDFS intègre un mécanisme de failover pour les problèmes de pannes, et peut ainsi garantir la disponibilité et l intégrité des données malgré une défaillance système (plantage d une machine). C est pourquoi on parle de haute disponibilité des données. 2

Map/Reduce Comme on l a déjà évoqué, MapReduce est un modèle de programmation parallèle permettant de traiter un grand volume de données. Celui- ci s appuie sur deux étapes principales : le mapping et le reducing. Lors de l étape de Map, on définit une fonction de mapping dont le but sera d analyser les données en entrée telles qu elles sont fournies dans les blocs de données HDFS. Les données en sortie à l issue de cette étape sont des couples < clé, valeur > et on a au plus un couple pour chaque données en entrée (on peut choisir d exclure des données non valides par exemples). Suite à cette étape, il faut Reduce. On définit donc une fonction qui, à partir des résultats précédents, génère les données finales agrégées (comme le nombre d occurrence pour chaque clé). Il est important de noter que les nœuds se chargeant du mapping ne s occupe pas du reducing. Lors de cette dernière étape, chaque nœud traite une liste de données ayant toutes la même clé, ce qui permet de faire les calculs correspondant de manière répartie et efficace. Source : http://blog.khaledtannir.net Ainsi, lors de l étape de mapping, on envoie simplement les données vers les nœuds qui devront les traiter en fonction de leur clé. Afin d optimiser ce processus, on peut faire intervenir une étape intermédiaire et facultative appelée combining. 3

L étape du Combine n est autre qu un mini- reducing des données au sein d un nœud ayant effectué son mapping mais avant de les envoyer aux prochains nœuds pour le reducing. L avantage se fait au niveau de la bande passante dans le cas d un environnement distribué : plutôt que d envoyer n lignes ayant la même clé à un nœud donné, on envoie à ce dernier une seule ligne représentant l opération d agrégation déjà réalisée. Application au sein d un programme Java Voici les différentes étapes d un programme simple avec en gras ce qui doit être réaliser par le développeur : Configuration du job, de l unité de travail. Distribution du jeu de données sur le cluster HDFS (suppose d avoir le service en état de fonctionnement). Démarrage de chaque tâche map avec son propre jeu de données, issu de la distribution. Exécution en parallèle de chaque fonction map. Les sorties sont triées par clé, nouveau jeu de données. Démarrage de chaque tâche reduce avec son propre jeu de données, issu du tri. Exécution en parallèle de chaque fonction reduce. Assemblage des résultats du reducing puis stockage dans le cluster HDFS. Il y a donc très peu de paramétrisation à faire pour créer une tâche de MapReduce simple. Pour cela, il suffit de créer un programme Java depuis Eclipse et de disposer du plugin Hadoop MapReduce. Il faut également télécharger les dépendances sur le site officiel pour les imports. Voilà à quoi ressemble le programme Java adapté à la vente des jolitres (première version, amélioration à venir) depuis l exemple fourni sur le site officiel. public class JolitreCount { JolitreCount.java protected static Logger logger = Logger.getLogger(JolitreCount.class); public static void main(string[] args) { JobClient client = new JobClient(); JobConf conf = new JobConf(JolitreCount.class); // specify output types conf.setoutputkeyclass(text.class); conf.setoutputvalueclass(intwritable.class); // specify input and output dirs TextInputFormat.addInputPath(conf, new Path("input")); TextOutputFormat.setOutputPath(conf, new Path("output")); // specify a mapper 4

conf.setmapperclass(jolitrecountmapper.class); // specify a reducer conf.setreducerclass(jolitrecountreducer.class); conf.setcombinerclass(jolitrecountreducer.class); client.setconf(conf); try { // job time long start_time = System.nanoTime(); JobClient.runJob(conf); long end_time = System.nanoTime(); double seconds = (end_time - start_time)/1e9; logger.info("task completed in " + seconds); catch (Exception e) { e.printstacktrace(); JolitreCountMapper.java public class JolitreCountMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private final IntWritable one = new IntWritable(1); private Text word = new Text(); @Override public void map(longwritable arg0, Text value, OutputCollector<Text, IntWritable> output, Reporter arg3) throws IOException { String[] line = value.tostring().split(";"); if(!"".equals(line[2]) &&!" ".equals(line[2])) word.set(line[2]); output.collect(word, one); JolitreCountReducer.java public class JolitreCountReducer extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException { int sum = 0; while (values.hasnext()) { IntWritable value = (IntWritable) values.next(); sum += value.get(); // process value output.collect(key, new IntWritable(sum)); 5

Sources http://hadoop.apache.org/ http://en.wikipedia.org/wiki/apache_hadoop http://www.coreservlets.com/hadoop- tutorial/ http://developer.yahoo.com/hadoop/tutorial/ http://blog.khaledtannir.net http://blog.inovia- conseil.fr/?p=67 http://hortonworks.com/hadoop- tutorial/hello- world- an- introduction- to- hadoop- hcatalog- hive- and- pig/ 6