Je voudrais savoir à quoi ressemble votre environnement de développement Hadoop?
Déployez-vous des jars pour tester le cluster ou exécuter des jars en mode local?
Quel IDE utilisez-vous et quels plugins utilisez-vous?
Comment déployez-vous des projets terminés à exécuter sur des serveurs? Quelles sont vos autres recommandations sur la configuration de mon propre environnement de développement/test Hadoop?Environnement de développement Hadoop, à quoi ressemble le vôtre?
Répondre
Il est extrêmement fréquent de voir des gens écrire des travaux java MR dans un EDI comme Eclipse ou IJ. Certains utilisent même des plugins comme les outils de développement de Karamasphere qui sont pratiques. En ce qui concerne les tests, le processus normal consiste à tester la logique métier comme vous le feriez normalement. Vous pouvez tester une partie de l'infrastructure environnante MR en utilisant les classes MRUnit (voir le contrib de Hadoop). La prochaine étape est généralement de tester dans le courtier de travail local, mais notez ici un certain nombre de mises en garde: le cache distribué ne fonctionne pas en mode local, et vous êtes seul threaded (donc les variables statiques sont accessibles de manière à ne pas être en production). L'étape suivante (et l'environnement de test le plus courant) est le mode pseudo-distribué - tous les démons sont en cours d'exécution, mais sur une seule case. Cela va exécuter du code dans différentes JVM avec plusieurs tâches en parallèle et révélera la plupart des erreurs de développement.
Les bocaux de travaux MR sont distribués à la machine client de différentes manières. Habituellement, les processus de déploiement personnalisés sont visibles ici. Certaines personnes utilisent des outils tels que Capistrano ou des outils de gestion de configuration comme Chef ou Puppet pour automatiser cela.
Mon développement personnel est généralement effectué dans Eclipse avec Maven. Je construis des jars en utilisant le plugin Maven's Assembly (qui contient toutes les dépendances dans un seul pot pour un déploiement plus facile, mais des jars plus gros). Je teste régulièrement en utilisant MRUnit puis en mode pseudo-distribué. Le courtier d'emploi local n'est pas très utile dans mon expérience. Le déploiement s'effectue presque toujours via un système de gestion de configuration. Les tests peuvent être automatisés avec un serveur CI comme Hudson.
Espérons que cela aide.
Veuillez cocher les questions du sondage 'wiki communautaire'. – danben