这篇文章将略微绕开
使用MapReduce实现
数据密集型处理中的模式
,以讨论同样重要的测试。
汤姆•惠勒 (
Tom Wheeler)在纽约2012年Strata / Hadoop World会议上参加的一次演讲给了我部分启发。 处理大型数据集时,想到的并不是单元测试。 但是,当考虑到无论集群有多大或有多少数据时,都将相同的代码推送到所有节点以运行MapReduce作业,因此Hadoop映射器和化简器非常适合进行单元测试。 但是,对框架进行Hadoop的单元测试并不容易。 幸运的是,有一个使Hadoop测试相当容易的库–
MRUnit 。 MRUnit基于JUnit,并允许对映射器,化简器进行单元测试以及对映射器进行一些有限的集成测试-归化器与组合器,自定义计数器和分区器之间的交互。 在撰写本文时,我们正在使用MRUnit的最新版本0.9.0。 所有测试的代码均来自上一则有关使用本地聚合计算平均值的
文章 。
设定
要开始使用,请从此处下载MRUnit。 解压缩tar文件后,将cd插入mrunit-0.9.0-incubating / lib目录。 在其中,您应该看到以下内容:
- mrunit-0.9.0-incubating-hadoop1.jar
- mrunit-0.9.0-incubating-hadoop2.jar
我敢肯定,mrunit-0.9.0