在单元测试中启动一个简单的独立hadoop服务器

时间:2013-10-15 20:25:41

标签: java unit-testing maven hadoop hive

后台:我正在尝试将Hive查询作为测试框架的一部分进行测试。我想创建测试一小部分数据的简短测试,以便查询快速返回,并能够在每台计算机上运行它们(甚至是私人笔记本电脑)。目标是能够检查代码,使用maven构建并运行测试。

问题:我是否有办法仅使用java代码启动独立的hadoop(或某种模拟器),而无需下载和安装可以作为测试的一部分运行?< / p>

我的目标是在测试结束时删除测试中@Before方法设置的hadoop测试。

2 个答案:

答案 0 :(得分:2)

你看过MiniCluster apis(http://wiki.apache.org/hadoop/HowToDevelopUnitTests)了吗?

以下是一篇博客文章,其中介绍了如何使用此API的详细信息:http://www.lopakalogic.com/articles/hadoop-articles/hadoop-testing-with-minicluster/

看起来你可能正在寻找什么。

答案 1 :(得分:1)

看看HiveQLUnit - 一个开源项目来测试Hive。

  • 快速 - 它通过使用HiveContext在内存中运行。
  • 独立 - 无需安装服务器即可从笔记本电脑/ dexktop运行。
  • Maven集成 - 包含在maven中心,可以轻松地作为项目中的maven依赖项包含在内。
  • JUnit集成 - 与JUnit单元测试框架完全集成

它还解决了从您喜欢的IDE执行独立单元测试的问题。

它可以在任何操作系统(包括Windows,Linux和Mac OSX)上从您喜欢的IDE执行单元测试。以下是使用HiveQLUnit的一些指导 - Documentation

注意:我隶属于HiveQLUnit OS项目。