2

我创建了一个小示例来了解如何使用 MRUnit 来测试 MapReduce 代码。我正在尝试运行的示例是 wordcount,所以我不会在此处粘贴代码,因为它对所有人都很熟悉。

我已经使用 JUnit 编写了测试。令我困惑的是,测试的成功取决于列出输出值的顺序。

例如,此测试通过:

mapDriver.withInput(new LongWritable(), new Text("Hadoop is cool"))
            .withOutput(new Text("Hadoop"), new IntWritable(1))
            .withOutput(new Text("is"), new IntWritable(1))
            .withOutput(new Text("cool"), new IntWritable(1))
            .runTest();

但是这个不

mapDriver.withInput(new LongWritable(), new Text("Hadoop is cool"))
            .withOutput(new Text("Hadoop"), new IntWritable(1))
            .withOutput(new Text("cool"), new IntWritable(1))
            .withOutput(new Text("is"), new IntWritable(1))
            .runTest();

这不是我所期望的行为。

这是 MRUnit 中的错误,还是有这种行为的原因?

4

0 回答 0