在Hadoop中使用MRUnit进行单元测试
作者:网络转载 发布时间:[ 2013/9/9 14:44:56 ] 推荐标签:
在这段示例代码中,我们使用的map是org.apache.hadoop.mapred.lib.IdentityMapper。这是一个非常简单的map函数:输入什么,输出什么。
org.apache.hadoop.mrunit.MapDriver是我们从MRUnit框架中导入的一个专门用于测试map的类。
我们通过withInput指定输入的参数,通过withOutput指定我们期望的输出,然后通过runTest运行我们的测试。
功能
1. 测试Map,我们可以使用MapDriver。
2. 测试Reduce,我们可以使用ReduceDriver。
3. 测试一个完整的MapReduce,我们可以使用MapReduceDriver。
4. 测试多个MapReduce组合而成的操作,我们可以使用PipelineMapReduceDriver。
实现
MRUnit框架非常精简,其核心的单元测试依赖于JUnit。
由于我们编写的MapReduce函数中包含有一个OutputCollector的对象,所以MRUnit自己实现了一套Mock对象来控制OutputCollector的操作。
局限
通过阅读MRUnit的源代码我们会发现:
1. 不支持MapReduce框架中的分区和排序操作:从Map输出的值经过shuffle处理后直接导入Reduce中了。
2. 不支持Streaming实现的MapReduce操作。
虽然MRUnit有这些局限,但是足以完成大多数的需求。
相关推荐
更新发布
常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11系统性能测试及调优前期准备
2021/4/15 14:41:29国内比较好用的5款测试管理工具
2021/3/25 17:23:31