Hadoop Map减少测试 - 自定义记录阅读器

时间:2014-03-11 04:14:36

标签: testing hadoop mapreduce recordreader

我编写了一个自定义记录阅读器并寻找样本测试代码,以使用MRUnit或任何其他测试框架来测试我的自定义阅读器。它的工作正常,但我想在安装之前添加测试用例。任何帮助都会很明显。

1 个答案:

答案 0 :(得分:0)

在我看来,自定义记录阅读器就像任何迭代器一样。为了测试我的记录阅读器,我能够在没有MRUnit或任何其他hadoop junit框架的情况下工作。测试快速执行,占地面积也很小。在测试用例中初始化记录阅读器并继续迭代它。这是我的一个测试中的伪代码。如果您想要朝这个方向前进,我可以为您提供更多详细信息。

MyInputFormat myInputFormat = new MyInputFormat();
//configure job and provide input format configuration
Job job = Job.getInstance(conf, "test");    
conf = job.getConfiguration();

// verify split type and count if you want to verify the input format also
List<InputSplit> splits = myInputFormat.getSplits(job);

TaskAttemptContext context = new TaskAttemptContextImpl(conf, new TaskAttemptID());
RecordReader<LongWritable, Text> reader = myInputFormat.createRecordReader(splits.get(1), context);
reader.initialize(splits.get(1), context);

for (; number of expected value;) {
  assertTrue(reader.nextKeyValue());
  // verify key and value
  assertEquals(expectedLong, reader.getCurrentKey());
}