在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有这些局限,但是足以完成大多数的需求。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
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