我有一个基于 Hadoop 的 MapReduce 程序。我知道如何使用 ${hadoop_home}/bin/hadoop jar 命令运行它。
但是,我想用 testNG 运行这个程序。我应该怎么做才能用 hadoop 开始一个 testNG 案例?
如果您正在寻找一个单元测试框架,请查看mr-unit (Apache)。您可以将驱动程序代码包装在 JUnit 或假设 TestNG 中(免责声明 - 我只使用过 JUnit)。
这允许您通过映射器或缩减器推送值并断言特定的输出/计数器出来了
终于弄明白了,关键是classpath的设置。
除了hadoop-core-.jar之外, ${hadoop_home}/share/hadoop/lib/下的所有 jar 文件, ${hadoop_home}/share/hadoop/lib/ jsp-/ 下的 jar 文件,以及其他 jar 文件是程序代码依赖,"${hadoop.home}/conf", "${hadoop.home}/share/hadoop"和MR程序本身必须编译打包成Jar文件并添加到运行时类路径中。
这样设置完成后,调用MR方法的testNG测试用例就可以正常运行了。