Je suis sur le point de vous lancer dans un projet à l'aide d'Apache Hadoop / Hive, qui impliquera une collection de scripts de requête de la ruche pour produire des flux de données pour différentes applications de flux. Ces scripts semblent être des candidats idéaux pour des tests unitaires - ils représentent l'accomplissement d'un contrat d'API entre mon magasin de données et des applications clientes, et comme tels, il est trivial d'écrire ce que les résultats attendus devraient être pour un ensemble donné de données de départ. Mon problème est de savoir comment exécuter ces tests. p>
Si je travaillais avec SQL requêtes, je pourrais utiliser quelque chose comme SQLLITE ou Derby pour soulever rapidement des bases de données de test, charger des données de test et exécuter une collection de tests de requête à leur encontre. Malheureusement, je ne suis pas au courant de ces outils de ce type de ruche. Pour le moment, ma meilleure pensée est d'avoir le cadre de test d'élever une instance locale Hadoop et de courir la ruche contre cela, mais je n'ai jamais fait cela auparavant et je ne suis pas sûr que cela fonctionnerait, ou soyez le bon chemin. < / p>
En outre, je ne m'intéresse pas à une discussion pédalette sur si ce que je fais est des tests unitaires ou des tests d'intégration - je dois juste pouvoir prouver que mes travaux de code. p>
4 Réponses :
HIVE a un mode autonome spécial, spécifiquement conçoit aux fins de test. Dans ce cas, il peut fonctionner sans Hadoop. Je pense que c'est exactement ce dont vous avez besoin. Il y a un lien vers la documentation: p>
Vous voudrez peut-être également envisager le message de blog suivant décrivant l'automatisation des tests de l'unité à l'aide d'une classe utilitaire personnalisée et de fourmi: http://dev.bizo.com/2011/04/hive-unit-testing.html P>
Je travaille dans le cadre d'une équipe pour soutenir une grande plate-forme de données et d'analyses, et nous avons également ce genre de problème. P>
Nous recherchons un moment et nous avons trouvé deux outils assez prometteurs: https://github.com/ klarna / hiverunner https://github.com/bobfreitas/hadoopminicluster p>
Hiverunner est un cadre construit sur Junit pour tester les requêtes de la HIVE. Il commence un Hiverver autonome avec en mémoire HSQL comme métastore. Avec vous, vous pouvez les tables, des vues, des échantillons simulés, etc. p>
Il existe des limitations sur les versions de la ruche, mais je le recommande définitivement p>
espérons que cela vous aide =) p>
@ Julio J'essaie d'exécuter HelloDiverunner, mais lorsque j'utilise Custom StorageHandler pour la création de Creasetable, je reçois une exception ne peut pas trouver la classe. Y a-t-il un moyen de définir hive_aux_jars_path? Merci
Je sais que c'est un vieux fil, mais juste au cas où quelqu'un l'entre à l'autre. J'ai suivi sur l'ensemble du miniCluster & Hive Test, et j'ai constaté que les choses ont changé avec MR2 et Fil, mais de bonne manière. J'ai mis en place un article et GitHub Repo pour lui donner de l'aide: P>
http://www.lopakalogic.com/articles/hadoop-articles / Test de Hive / P>
J'espère que cela aide! P>
Juste fyi, la solution de @ user2836591 semble être plus appropriée pour le moment