MRUnit简介与使用_MapReduce 2.0源码分析与编程实战_[共2页]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.2 使用MRUnit对MapReduce进行测试
rose
hdfs://localhost:9000
null
从这里可以看到,run方法圆满地完成了任务,获得了所在类的环境变量,从而能够打印出在自定义的myConfiguration.xml中名为“flower”的配置属性的映射“rose”,以及在Hadoop 的默认设置中设置的的映射“hdfs://localhost:9000”。

第三条打印语句是打印出Mapred.job.tracker的内容,因为没有运行任何有关的MapReduce程序,所以打印内容为null。

5.2使用M R U n i t对M a p R e d u c e进行测试
与大多数的程序设计相类似,使用MapReduce进行程序设计也需要遵循特定的流程。

首先要确定程序执行的目的,然后确定相关的算法,之后是编写代码与进行测试,最后在特定环境中部署运行。

不过不同之处在于,MapReduce需要分别编写Map类与Reduce类,确定两个任务的工作目的与范围。

之后可以使用编写测试单元的方式来确保程序能够正常运行并显示正确结果,在这个过程中应该使用特定数据进行分析测试。

如果测试结果与我们预想的不相同,则需要通过调试来找出相关问题。

5.2.1 MRUnit简介与使用
对普通程序设计来说,通过了基本程序测试就相当于完成了大部分的程序设计工作,下面只需要将应用程序部署到目标环境中即可。

但是对于MapReduce来说“这仅仅是一个开始”。

当MapReduce被正式部署到设置的集群环境中的时候,可能会产生更多更麻烦的问题。

有的问题可以被修复,而有的问题特别是涉及到MapReduce基本流程的问题,则很有可能需要把程序的部分内容推倒重做。

当MapReduce编写的程序被提交到集群环境后,对问题的定位是比较麻烦的。

有时需要一遍一遍地修改代码和打出日志来排查一个很小的问题,如果数据量大的话调试起来相当耗费时间。

因此,有必要使用良好的单元测试手段来消除明显的bug。

MRUnit是一个基于JUnit的单元测试框架,专门用于对Hadoop框架中的MapReduce进行单元测试。

101。

相关文档
最新文档