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



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

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

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

Big Data Concepts et mise en oeuvre de Hadoop

Tester Windows 8 sans l'installer avec Virtualbox

Installation et prise en main

Live box et Nas Synology

NetSupport Notify (v2.01) Guide de démarrage. Tous droits réservés NetSupport Ltd

Introduction à Hadoop & MapReduce

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

TP Sur SSH. I. Introduction à SSH. I.1. Putty

Utiliser Freemind à l'école

Contrôle de la DreamBox à travers un canal SSH

Programmation parallèle et distribuée

Travailler à l'ensimag avec son matériel personnel

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

OpenMediaVault installation

Programmation parallèle et distribuée

ECOLE POLYTECHNIQUE DSI. Utilisation des serveurs mandataires («proxy») avec les protocoles d usage courant

Gestion de parc Windows depuis Unix. Pascal Cabaud & Laurent Joly

Manuel Utilisateur ENTREPRISE Assistance téléphonique : (0.34 / min)

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

Travailler à l'ensimag avec son matériel personnel

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

Windows sur Kimsufi avec ESXi

TP 1. Prise en main du langage Python

Initiation à JAVA et à la programmation objet.

Catalogue des stages Ercom 2013

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

Les différentes méthodes pour se connecter

Découvrez notre solution Alternative Citrix / TSE

Systeme d'exploitation

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Les technologies du Big Data

I. Linux/Unix/UnixLike

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

WGW PBX. Guide de démarrage rapide

Panorama des solutions analytiques existantes

Installation du SLIS académique virtualisé avec VirtualBox sur un serveur W2K3 à 2 cartes réseaux en architecture cible

EN Télécom & Réseau S Utiliser VMWARE

Vous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.

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

Gestion des utilisateurs : Active Directory

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

Utilisation des ressources informatiques de l N7 à distance

Ce guide décrit la procédure à suivre afin de profiter pleinement du Service de Transfert de Fichiers EGIS. Il décrit

Vade mecum installation et configuration d une machine virtuelle V5.1.0

Nb. De pages : 24 MANGO. Manuel d'utilisation. Version 1.2. décembre 2010

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Pluridisciplinarité. Classe de BTS DATR

FORMATION WS1205 INSTALLATION ET GESTION DE L'ENVIRONNEMENT APPLICATIF DES POSTES DE TRAVAIL AVEC WINDOWS SERVER 2012

Guide d installation TV sur ordinateur Internet 3G+

Programmation Objet - Cours II

Atelier individuel. Linux 101. Frédérick Lefebvre & Maxime Boissonneault frederick.lefebvre@calculquebec.ca U. Laval - Janv. 2014

Bureau Virtuel Lyon 2

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

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Domaine D1 : Travailler dans un environnement numérique évolutif

LES BIBLIOTHEQUES DE WINDOWS 7

Travailler à l'ensimag avec son matériel personnel

Mercredi 15 Janvier 2014

Notes de cours Practical BigData

Chapitre 2 : Abstraction et Virtualisation

Programmation Mobile Android Master CCI

TP4 : Installer configurer un contrôleur de domaine

TP Déploiement de réseaux IP sous Linux et MS Windows sur une infrastructure virtualisée

Projet De Stijl Plate-forme pour robots mobiles

Catalogue Formations Jalios

EN Télécom & Réseau S Utiliser VMWARE

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

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

Pas-à-pas : activer WebDAV pour le partage des fichiers iwork sur ipad

Mise en route. QuickBooks. en ligne. Quelques conseils pour démarrer en beauté

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

Date : NOM Prénom : TP n /5 ET ADMINISTRATION D'UN

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

GANTTPROJECT. Julien TENDERO

Mode d'emploi, If Cinéma

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

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

Préparer la synchronisation d'annuaires

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

CA ARCserve Backup ß QUESTIONS LES PLUS FRÉQUENTES : CA ARCSERVE BACKUP R12.5

Les messages d erreur d'applidis Client

Première édition en format électronique. Parallels Desktop 7 pour Mac OS X.

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

PostgreSQL. Formations. Calendrier... 14

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

Table des Matières. 2 Acronis, Inc

Transcription:

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

TP 1 - Correction Méthodologie Map/Reduce - programmation Hadoop.

Rappel 1 La première partie du TP consistait à mettre en place l'environnement pour ce TP et les prochains (machine virtuelle). Le sujet en lui-même consistait à concevoir un algorithme en utilisant la méthodologie map/reduce pour détecter et extraire tous les anagrammes à partir d'une liste de mots «communs» de la langue Anglaise. Il était aussi nécessaire d'implémenter cet algorithme pour qu'il soit exécutable via Hadoop soit en utilisant l'api Java «standard», soit via un autre langage de programmation en utilisant l'outil streaming de Hadoop (au choix).

Anagrammes 2 Comme indiqué dans le cours, le point central de ce genre de problèmes dans la méthodologie map/reduce pour trouver une solution optimale consiste à déterminer la clef à utiliser. Ici, on cherche à trouver des anagrammes. Une bonne question à se poser est donc: «Quel est le point commun entre deux mots qui sont des anagrammes?» - il s'agit des lettres des mots elles-même. Par conséquent, une clef idéale serait constituée de ces lettres. On a par ailleurs besoin, lors de l'étape intermédiaire de groupement/shuffle, que deux couples (clef;valeur) correspondant à un même anagramme soit groupés ensemble; autrement dit, que leur clef soit identique. Une bonne manière d'accomplir cet objectif serait de trier les lettres de la clef par ordre alphabétique: si on a deux mots «lemon» et «melon» (qui sont des anagrammes), on aura alors pour les deux une clef identique «elmno».

Anagrammes - MAP 3 Le code source de notre opération map consistera donc à: Générer une chaîne de caractères à partir du mot reçu en entrée de l'opération map; contenant toutes les lettres de ce mot, mais triées dans l'ordre alphabétique. Renvoyer un couple (clef;valeur), ayant pour clef cette chaîne de caractère et pour valeur le mot reçu en entrée de l'opération map. Cette opération est simple et générera par exemple, pour reprendre l'exemple précédent des deux mots «lemon» et «melon», les deux couples (clef;valeur): ("elmno", "lemon") et ("elmno", "melon")

Anagrammes - REDUCE 4 Quand à notre opération REDUCE, elle recevra en entrée les couples (clef;valeur) issus de l'opération MAP, groupés par clef distincte. Dans le cadre de l'api Java, cela se traduit par une clef unique: la clef distincte, ainsi qu'un objet Iterable de toutes les valeurs rencontrées correspondant à cette clef. Notre opération REDUCE est encore plus simple et devra simplement: Itérer sur chacune de ces valeurs, et la rajouter au sein d'une chaîne de caractères (en plaçant par exemple une virgule entre chacune des valeurs). Renvoyer un couple (clef;valeur) unique: la clef distincte reçue en entrée pour clef, et la chaîne de caractères ainsi générée pour valeur. Pour reprendre le même exemple, on recevrait ainsi en entrée la clef distincte «elmno» et un iterable contenant «lemon» et «melon», et on générerait: ("elmno", "lemon,melon")

Solution Java & Python 5 Le code source des classes Driver, MAP et REDUCE de la solution Java est disponible au sein des fichiers joints à cette correction, respectivement: Anagrammes.java AnagrammesMap.java et AnagrammesReduce.java Le code source des scripts MAP et REDUCE de la solution Python (à utiliser avec l'utilitaire streaming) est disponible au sein des mêmes fichiers, respectivement: anagrammes_map.py anagrammes_reduce.py

Autres remarques - PuTTY 6 Comme la machine virtuelle n'offre qu'une interface limitée, il est fortement recommandé de définir un port forwarding au sein de VirtualBox, entre le port hôte 2222 et le port 22 de la machine virtuelle. Cette redirection de port permettra de se connecter en SSH au système de la machine virtuelle, et ainsi d'avoir accés à une interface permettant la remontée dans l'historique, le copier-coller, etc. Pour se connecter une fois la redirection de port en place, il suffit de lancer PuTTY (sous Windows), et de se connecter à l'ip «127.0.0.1» et au port «2222». Sous Mac OS X ou Linux, on utilisera directement la commande ssh dans le terminal: ssh -p 2222 mbds@127.0.0.1

Autres remarques Eclipse & Netbeans 7 S'il est important de compiler manuellement au moins une fois un programme Hadoop, certains d'entre vous souhaitent probablement utiliser un IDE Java (par exemple Netbeans ou Eclipse) dans leur environnement habituel. Cela est possible: il vous suffit de télécharger les différentes librairies Java Hadoop (soit depuis la machine virtuelle dans /usr/share/local/hadoop, soit depuis le site officiel de Hadoop). Il suffit alors de les inclure dans un projet Java «standard», et de bien préciser à l'ide que ce projet doit compiler un.jar. Une fois la compilation effectuée, il faudra ensuite copier le fichier résultant sur la machine virtuelle pour le tester; pour ce faire, vous pouvez par exemple utiliser WinSCP (connexion à 127.0.0.1, port 2222): http://winscp.net/

Conclusion 8 Ce TP a permis la mise en place de l'environnement qui sera utilisé pour tous les TPs ultérieurs; il vous a par ailleurs permis de vous familiariser avec l'utilisation de Hadoop depuis la console. Il a par ailleurs poussé à la résolution d'un problème Hadoop légèrement plus complexe que celui vu en exemple en cours, et son implémentation logicielle et exécution sur Hadoop. La résolution d'un autre problème map/reduce, légèrement plus complexe et surtout plus «réaliste», constitue le sujet du TP 2.