2010-08-11 12 views
0

J'utilise hadoop et je travaille avec une tâche cartographique qui crée des fichiers que je veux conserver. Actuellement, je passe ces fichiers via le collecteur à la tâche de réduction. La tâche de réduction passe ensuite ces fichiers sur son collecteur, ce qui me permet de conserver les fichiers.Comment conserver le fichier de séquence créé par map dans hadoop

Ma question est de savoir comment conserver de manière fiable et efficace les fichiers créés par map?

Je sais que je peux désactiver la suppression automatique de la sortie de la carte, mais cela est-il mal vu, est-ce qu'il y a de meilleures approches?

Merci

Répondre

0

Vous pouvez le diviser en deux emplois.

Commencez par créer un travail de carte uniquement en sortant les fichiers de séquence souhaités. Puis, en prenant votre travail existant (ne faisant plus rien sur la carte mais vous pourriez faire un peu de calcul en fonction de votre implémentation) et en réduisant comme vous le faites maintenant la saisie de la carte précédente uniquement en tant que votre contribution à la deuxième emploi.

Vous pouvez envelopper tout cela dans un bocal exécutant les deux bocaux en tant que tels, en passant le chemin de sortie en tant qu'argument vers le deuxième chemin d'entrée des travaux.

+0

Merci, mais j'avais besoin d'utiliser les fichiers dans la carte. Par exemple, je crée une image puis extrait certaines fonctions de l'image. J'ai décidé que chaque tasktracker crée un fichier de séquence et que la fonction map récupère une référence statique au fichier de séquence. – akintayo