2014-05-17 56 views

回答

1

您可以独立运行MRUnit测试。你所需要的只是你的pom中的一些依赖。我只做了一个快速的小测试,这些是我运行成功测试所需的唯一依赖项。只需用硬编码值进行简单的测试。没有cywin,没有hadoop设置,只是依赖关系。

<dependencies> 
    <dependency> 
     <groupId>jdk.tools</groupId> 
     <artifactId>jdk.tools</artifactId> 
     <version>1.7.0_25</version> 
     <scope>system</scope> 
     <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-common</artifactId> 
     <version>2.2.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-yarn-common</artifactId> 
     <version>2.2.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.mrunit</groupId> 
     <artifactId>mrunit</artifactId> 
     <version>1.0.0</version> 
     <classifier>hadoop2</classifier> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-mapreduce-client-core</artifactId> 
     <version>2.2.0</version> 
    </dependency> 
</dependencies> 

就没有cygwin运行安装程序,这也是可能的。看看this sitethis site寻求帮助建立和安装Hadoop的窗口没有 cywin。

另一个有用的工具是日食的hadoop插件。你可以看到一个compiled version here。这很容易使用。你可以得到一些关于如何使用它的帮助here

+0

Thanks.It很好。这很酷,我看到Mrunit也支持分布式缓存。只是我原来的问题的一个扩展(如果需要,将创建一个单独的帖子),我假设如果在地图/设置方法内有hdfs读/写调用,mrunit不能模拟(我明白它不被推荐,不幸的是我已经读过调用在我的设置方法中)。 –

+0

您可以使用'MiniMRCluster'和'MiniDFSCluster',如[这里]讨论的(http://grepalex.com/2012/10/20/hadoop-unit-testing-with-minimrcluster/)。你需要这个'hadoop-test-x.y.z.jar'。我刚刚在eclipse中设置它。让我知道你是否想要更多的信息 –

+0

谢谢。将试用它们。发现Mrunit似乎没有完全支持分布式缓存(例如,符号链接功能不可用),至少在我使用的1.0.0版本中是如此。 –