IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hadoop & co Discussion :

MapReduce et entrée de type pipe


Sujet :

Hadoop & co

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut MapReduce et entrée de type pipe
    Bonjour à tous, je viens vers vous car j'ai un petit souci avec un programme MapReduce.

    J'ai installé un environnement Hadoop sur une machine linux (avec Hive et HBase entre autres).
    Après avoir farfouillé un peu partout sur le net, j'ai réussi à faire un programme mapreduce, qui fonctionne globalement bien.
    Lorsque je lance le mapreduce, je lui donne en argument un nom de fichier du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      hadoop jar /tmp/mapreduce.jar --inputfile "file:///tmp/input_data.txt"
    ce fichier (input_data.txt) contient donc plusieurs lignes disons par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       1,ligne1_col1,ligne1_col2
       2,ligne2_col1,ligne2_col2
       3,ligne3_col1,ligne3_col2
    Donc le mapreduce lit et traite chacune de ces 3 lignes sans aucun soucis.

    En revanche, lorsque je décide d'utiliser un fichier de type "pipe" (créé avec mkfifo) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      hadoop jar /tmp/mapreduce.jar --inputfile "file:///tmp/pipe"
    là le mapreduce se met en attente du transfert des données, donc tout va bien jusqu'ici, et donc ensuite dans un autre shell je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      cat /tmp/input_data.txt > /tmp/pipe
    le mapreduce me traite uniquement la 1ère ligne des données envoyées dans le pipe, comme si le mapreduce stoppait le flux au 1er retour à la ligne ou quelque chose du genre.

    Si quelqu'un à idée ou une piste, ça serait cool !

    Merci d'avance,
    Stéphane

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Points : 182
    Points
    182
    Par défaut
    par manque de temps, j'ai lu en diagonale et je suis pas trop sur d'avoir tout compris sur le resultat que vous souhaitez obtenir,

    je ne sais pas quelle version hadoop and map reduce vous utilisez, mrv1, mrv2 ?

    a chaud, regardez la si cela vous inspire, pour traiter du pipe et du stream, si vous souhaitez traiter du flux, j'ai pas vérifier, par défaut il travaile sur une image du
    fichier et il distribue sur les nodes map/reduce en écoute, il faut gérer spécifiquement le contexte pipe/stream en résultat de votre commande.

    https://developer.yahoo.com/hadoop/t...html#streaming

    bin/hadoop pipes -input inputPath -output outputPath -program path/to/pipes/program/executable



    http://hadoop.apache.org/docs/r2.7.1...Streaming.html

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour, merci pour le lien sur lequel je n'étais effectivement pas tombé, plutôt complet et précis.

    J'ai pu essayer la technique du "streaming", et finalement j'obtiens exactement le même résultat qu'avec "mon" MapReduce, seule la 1ère ligne du flux du pipe est prise en compte.
    J'ai pu aussi voir le système de pipe en c++, mais malheureusement j'obtiens une erreur lors de l’exécution du MapReduce en question. Mais de toutes façons l'utilisation d'un programme externe linké à des librairies (libhadooppipes.a et libhadooputils.a) Hadoop spécifiques à une version (la 2.0.5 dans mon cas) ne convient pas à mon objectif final, ainsi je ne peux donc pas utiliser ce genre de solution.

    Donc à l'heure actuelle je n'ai pas de solution à mon problème, mais je cherche, et si un jour je trouve, je la posterai ici au cas ou.

    Stéphane

Discussions similaires

  1. Réponses: 21
    Dernier message: 20/02/2006, 12h00
  2. [SQL_DOUBLE & SQL_D_FLOAT] différence entres 2 types
    Par jean-jacques varvenne dans le forum SQL
    Réponses: 12
    Dernier message: 01/04/2005, 18h04
  3. Réponses: 11
    Dernier message: 31/01/2005, 18h48
  4. Résultats erroné différence entre deux types TDateTime
    Par Alghero dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/03/2004, 18h03
  5. fopen -> différences entres les types d'ouvertur
    Par Patrick PETIT dans le forum C
    Réponses: 10
    Dernier message: 01/06/2003, 19h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo