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. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

contact@nqicorp.com - Web :

Introduction à Hadoop & MapReduce

TP1. Outils Java Eléments de correction

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Auguria_PCM Product & Combination Manager

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

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

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Utiliser Access ou Excel pour gérer vos données

Automatisation de l administration système

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Microsoft Application Center Test

Installation d'un serveur FTP géré par une base de données MySQL

Préparer la synchronisation d'annuaires

Contrôle de la DreamBox à travers un canal SSH

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Guide d'utilisation de la formule VPS E-commerce Prestashop. Créez votre boutique en toute simplicité!

Big Data Concepts et mise en oeuvre de Hadoop

CATALOGUE DES FORMATIONS

CA ARCserve D2D pour Linux

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

contact@nqicorp.com - Web :

BTS SIO Dossier BTS. PURCHLA Romain

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Installation / Sauvegarde Restauration / Mise à jour

Table des matières Hakim Benameurlaine 1

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier Tenrox. Tous droits réservés.

Installation et prise en main

CA Desktop Migration Manager

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

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

I. MySQL : Serveur et SGBD

Thunderbird en version Portable

Projet Administration Réseaux

CONNECTEUR PRESTASHOP VTIGER CRM

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

[ GLPI et OCS pour Gentoo 2006] ArtisanMicro. Alexandre BALMES

Simple Database Monitoring - SDBM Guide de l'usager

Manuel d'utilisation d'apimail V3

FileMaker 13. Guide ODBC et JDBC

Java pour le Web. Cours Java - F. Michel

Dans le cadre de SECURIDAY Et sous le thème de Computer Forensics Investigation SECURINETS. Analyse des fichiers LOG. Tarek LABIDI (RT3)

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Service de certificat

Cloud public d Ikoula Documentation de prise en main 2.0

Installation des outils OCS et GLPI

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Projet d'infrastructure Cloud

Maintenir Debian GNU/Linux à jour

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

HowTo Installer egroupware 1.2 sur SME Serveur 7.0

Retrospect 7.7 Addendum au Guide d'utilisation

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

UserLock Guide de Démarrage rapide. Version 8.5

Programmation parallèle et distribuée

Programmation parallèle et distribuée

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

Étude de solutions automatisées pour le déploiement des salles d'enseignement

Projet de Veille Technologique

Serveur de travail collaboratif Michaël Hoste -

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

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

OpenMediaVault installation

TeamViewer 7 Manuel Manager

Procédure : Sauvegarder un Windows 7 sur un disque réseau

Administration de Parc Informatique TP07 : Installation de Linux Debian

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

Guide de mise à niveau de la plateforme de Business Intelligence

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

1 Configuration réseau des PC de la salle TP

1. La plate-forme LAMP

CA ARCserve Backup Patch Manager pour Windows

SafeKit. Sommaire. Un livre blanc de Bull Evidian

TP Service HTTP Serveur Apache Linux Debian

Business Intelligence avec SQL Server 2012

inviu routes Installation et création d'un ENAiKOON ID

1 Démarrage de Marionnet

Création de formulaires interactifs

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Transcription:

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

TP 3 TP noté Méthodologie Map/Reduce - programmation Hadoop - Sqoop

Préparation du TP 1 Importer la machine virtuelle.ova du TP. Il s'agit d'un système GNU/Linux Debian, amd64. Il ne s'agit pas de la même machine virtuelle que précédemment. Démarrer la machine virtuelle. S'identifier avec le login: hadoop, mot de passe: mbds. Démarrer Hadoop avec les commandes: start-dfs.sh & start-yarn.sh & (ignorer les warnings)

Préparation du TP 2 Vérifier le bon fonctionnement de Hadoop en exécutant la commande: hdfs dfsadmin -report La commande vérifie le statut de HDFS. Elle devrait afficher: Datanodes available: 1 (1 total, 0 dead)

Objectifs 3 Ce TP est noté. Il peut être effectué seul ou en groupe (au maximum 4 personnes). Merci d'envoyer la constitution de vos groupes à l'adresse: ben@tokidev.fr. Le TP constitue une mise en situation; il vise à évaluer votre compréhension et votre maîtrise de la méthodologie map/reduce, de Hadoop, et de l'outil additionnel Sqoop dans un exemple applicatif «réaliste».

Objectifs 4 On imagine qu'une entreprise (à titre d'exemple, Microsoft) souhaite connaître les tendances d'opinion la concernant en analysant les tweets la concernant: ceux contenant le hashtag #Microsoft. Une tâche automatisée importe régulièrement ces tweets au sein d'une base de données MySQL, dans une table tweets. Par ailleurs, un formulaire a été mis en place permettant de sélectionner une période de temps. Ce formulaire produit deux ids numériques: id_min et id_max, correspondant à la clef primaire id du premier tweet à analyser et à celle du dernier tweet à analyser, au sein de la table de la base MySQL.

Objectifs 5 Vous avez pour tâche de développer un script qui va: Recevoir les valeurs id_min et id_max. Exécuter un import Sqoop pour récupérer les tweets correspondant à ces valeurs depuis la base MySQL dans HDFS. Exécuter un programme Hadoop map/reduce analysant les tweets ainsi importés pour déterminer une mesure d'opinion basique. Exécuter un export Sqoop pour exporter les résultats de l'analyse au sein d'une seconde table results dans la même base de données. Vous devez également développer le programme Hadoop map/reduce en question.

Objectifs 6

Informations 7 Vous n'avez pas à développer le formulaire de sélection de la période de temps. Il n'est pas nécessaire non plus de s'occuper de la partie installation/alimentation de la base de données. On imagine donc que votre tâche débute à la réception des deux identifiants id_min et id_max; dans cette mise en situation, ils seraient typiquement passés à votre application par le formulaire en question (via un appel au script). Le développement du script d'exécution lui-même est optionnel (pour des points bonus en plus); votre tâche consiste à développer le programme map/reduce, et à créer deux commandes Sqoop lui correspondant: une pour l'import des tweets sur HDFS et l'autre pour l'export des résultats sur MySQL.

Machine virtuelle 8 La machine virtuelle associée au TP contient d'ores et déjà: Hadoop/HDFS, la base de données MySQL, Sqoop, et les données relatives au TP lui-même. Deux tunnels devraient normalement déjà être configurés sur la machine virtuelle: Le premier pour SSH, sur le port 2222. Il vous est ainsi possible d'accéder à la console via PuTTY/autre client SSH en vous connectant sur 127.0.0.1:2222. Le second pour un serveur web tournant également sur la machine, sur le port 8888. Son but essentiel est de vous permettre d'accéder à une interface PHPMyAdmin si vous le souhaitez, à l'adresse: http://127.0.0.1:8888/phpmyadmin/

Machine virtuelle 9 Les informations de connexion à la base de données MySQL: Serveur: localhost Login: hadoop Mot de passe: mbds Base de données: hadoop Vous pouvez accéder à la base pour analyser la structure des tables par le biais de PHPMyAdmin (voir slide précédente), ou simplement depuis la console par le biais du client MySQL CLI, avec la commande: mysql -u hadoop -pmbds hadoop (tapez ensuite vos requêtes, par exemple «desc tweets;».

Machine virtuelle 10 Toutes les commandes sont à taper via l'utilisateur système hadoop. Au sein du répertoire home de cet utilisateur (/home/hadoop), un répertoire big_data_hadoop_tp_3 contient les fichiers suivants: wordlist_bad.txt: les mot-clefs désignant un tweet comme «négatif». wordlist_good.txt: les mot-clefs désignant un tweet comme «positif». tweets_import.sql: les requêtes ayant permis de créer la base de données (normalement, n'est pas utile). examples/: les codes sources des programmes Anagrammes et WordCount des précédents TPs pour vous aider si nécessaire; également présents sous forme déjà compilée.

Analyse d'opinion 11 Votre tâche map/reduce doit analyser les tweets et en sortir quatre compteurs: Un nombre de tweets négatifs. Un nombre de tweets positifs. Un nombre de tweets inconcluants. Un nombre de tweets neutres. Comme indiqué plus haut, on se sert d'une liste de mot-clefs pour déterminer si un tweet est positif ou négatif. Il s'agit évidemment là d'une approche basique (qui ne suffirait pas dans un cas réel), mais elle suffit dans le cadre de ce TP. De même, la quantité de tweets est faible (< 500), là aussi pour des raisons de simplicité et de rapidité d'exécution.

Analyse d'opinion 12 Un tweet doit être considéré comme: Positif s'il contient au moins un mot clef de la liste des mot-clefs positifs (wordlist_good.txt), et aucun de la liste des mot-clefs négatifs. Négatif s'il contient au moins un mot clef de la liste des mot-clefs négatifs (wordlist_bad.txt), et aucun de la liste des mot-clefs positifs. Inconcluant s'il contient au moins un mot des deux listes, positives et négatives (par exemple «excellent» et «lamentable»). Neutre s'il ne contient aucun mot d'aucune des deux listes négatives et positives. Il n'est pas nécessaire de retenir quels sont les mots rencontrés; on cherche uniquement à l'issue du programme map/reduce à avoir les quatres compteurs déjà mentionnés précédemment, et à les importer dans la table results.

Structure des tables 13 La table finale results est constituée de deux champs: opinion, un champs texte qui doit prendre pour valeur «positif», «negatif», «neutre» ou «inconcluant». amount, un champs numérique qui doit prendre pour valeur le compteur correspondant. La table d'entrée tweets est constituée de quatre champs: id, une clef unique numérique (sur laquelle s'applique la restriction id_min/id_max). author, un champs texte contenant l'auteur du tweet. tweet, un champs texte contenant le tweet lui-même. postdate, un champs texte contenant la date où le tweet a été posté.

Rendu du TP 14 A l'issu du TP, vous devrez rendre: Le code source de votre programme Hadoop map/reduce, en Java ou autre langage de programmation (via l'utilitaire streaming). Les deux commandes Sqoop d'import des données initiales et d'export des résultats. D'éventuelles remarques associées à leur exécution si nécessaire. Pour avoir tous les points, votre programme devra s'exécuter et effectuer le travail demandé. Pour des points en plus, vous pouvez également développer le script bash permettant l'automatisation de l'exécution de toutes ces étapes (voir plus loin). Rendez votre travail par e-mail (ben@tokidev.fr).

Remarques 15 Lors de l'analyse des tweets, pensez à d'éventuelles contraintes liées aux espaces / délimiteurs de mots. Tous les champs de la base d'entrée ne sont pas forcément à utiliser! Vous pouvez filtrer ceux qui ne vous intéressent pas via l'import Sqoop, ou bien au sein de votre programme map/reduce (la première solution est recommandée). Pour vous aider, inspirez-vous des exemples des TPs précédents. Vous avez évidemment le droit de consulter toute documentation utile en ligne; notamment pour ce qui touche au parsing de chaîne de caractères en Java (analyse des tweets).

Remarques 16 Si vous ne souhaitez pas utiliser la machine virtuelle mais votre propre machine, une archive contenant les fichiers du répertoire big_data_hadoop_tp_3 est disponible à l'adresse: http://cours.tokidev.fr/bigdata/tp/big_data_hadoop_tp_3.zip Rappel: pour compiler votre programme, deux possibilités: Via Eclipse/Netbeans (pensez à inclure les librairies Hadoop). Manuellement, en faisant par exemple (ajustez le nom du package en conséquence): javac *.java mkdir -p org/mbds/hadoop/tp3 mv *.class org/mbds/hadoop/tp3 jar -cvf mbds_tp3.jar -C. org

Bonus: script d'automatisation 17 Pour (quelques) points en plus, rédigez un petit script bash qui automatise toutes ces opérations. Il devra prendre deux arguments: id_min et id_max (accessible dans bash via les variables $1 et $2), de sorte qu'en appelant par exemple:./opinion.sh 20 200 toutes les opérations s'exécutent pour les tweets entre 20 et 200 et les résultats finaux soient importés au sein de la table results.