如何运行mrunit?

uyto3xhc  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(375)

我写了一个mrunit来测试我的mapper。但是,我不知道如何在eclipse中运行它,因为它从distributedcache读取一些数据。当我在eclipse中作为一个普通类运行它时,它会给我带来很多错误。以下是我收到的错误消息:

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.hadoop.mrunit.TestDriver.<clinit>(TestDriver.java:38)
    at MapperCombinerReducerTester.setUp(MapperCombinerReducerTester.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at ....
5uzkadbs

5uzkadbs1#

您的错误与不在类路径上的依赖项库(公共日志)有关。您是使用maven(结合m2e)来管理项目依赖关系,还是在eclipse中使用纯java项目?
使用mrunit测试依赖于分布式缓存的Map器/还原器也很棘手,因为0.9.0不支持模拟分布式缓存(如果您查看jira票证,将在1.0.0中提供)。我以前做过的一种方法是假设使用符号链接本地缓存文件,并在单元测试的设置中将文件复制到本地目录(虽然很混乱,但可以工作)。

相关问题