该测试应启动一个Hive服务器,将一些数据加载到表中,在该表上运行一些非平凡查询,并检查结果。
我已经按照Spring参考连接了Spring上下文。然而,作业在MapReduce阶段失败,抱怨没有Hadoop二进制文件:
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
问题在于Hive服务器是运行在内存中的,但是需要本地安装Hive才能运行。为了使我的项目自包含,我需要嵌入Hive服务,包括HDFS和MapReduce集群。我尝试使用与Hive QTestUtil源码和HBaseTestUtility中使用的模式相似的Spring方法启动Hive服务器,并将其指向MiniDFSCluster和MiniMRCluster。然而,我无法使其正常工作。
尝试了三天来处理Hive集成测试后,我想向社区寻求帮助:
- 您如何推荐我集成测试Hive作业?
- 您是否有使用内存HDFS、MR和Hive实例进行Hive作业集成测试的可行JUnit示例?
我查看过的其他资源:
编辑: 我完全意识到针对Hadoop集群(无论是本地还是远程)进行操作可以运行全栈Hive实例的集成测试。但问题在于,这不是有效测试Hive工作流的可行解决方案。