Je suis en train d'écrire un non-trivial de la Ruche de travail à l'aide de la Ruche d'Épargne et d'interfaces de JDBC, et je vais avoir de la difficulté à mettre en place un décent de test JUnit. Par des non-trivial, je veux dire que les résultats de la tâche dans au moins un MapReduce stade, plutôt que de traiter avec le metastore.
Le test doit tirer jusqu'à une Ruche serveur, charger des données dans une table, d'exécuter certains non-trivial de la requête sur la table, et vérifier les résultats.
J'ai câblé un Printemps contexte en fonction du Printemps de référence. Cependant, le travail échoue sur le MapReduce phase, en se plaignant qu'aucun Hadoop binaire existe:
java.io.IOException: Cannot run program "/usr/bin/hadoop" (in directory "/Users/yoni/opower/workspace/intellij_project_root"): error=2, No such file or directory
Le problème est que la Ruche Serveur est en cours d'exécution en mémoire, mais s'appuie sur une installation locale de la Ruche afin de l'exécuter. Pour mon projet, à être autonome, j'ai besoin de la Ruche de services intégrés, y compris le HDFS et MapReduce clusters. J'ai essayé le démarrage d'une Ruche serveur en utilisant le même Ressort méthode et pointant à MiniDFSCluster et MiniMRCluster, semblables au modèle utilisé dans la Ruche QTestUtil source et dans HBaseTestUtility. Cependant, je n'ai pas pu obtenir que cela fonctionne.
Après trois jours d'essayer de disputer la Ruche des tests d'intégration, je pensais demander à la communauté:
- Comment voulez-vous recommander je test d'intégration de la Ruche des emplois?
- Avez-vous un travail de JUnit exemple pour tester l'intégration de la Ruche emplois aide-mémoire HDFS, M., et la Ruche instances?
Des ressources supplémentaires que j'ai regardé:
Edit: Je suis pleinement conscient que le travail à l'encontre d'un cluster Hadoop - qu'il soit local ou à distance - permet d'exécuter les tests d'intégration à l'encontre d'un full-stack de la Ruche instance. Le problème, comme l'a dit, c'est que ce n'est pas une solution viable pour les tests de la Ruche de flux de travail.