Hadoop 如何测试含有突变的还原剂
我试图使用MRUnit,但我所看到的示例中没有一个与我所尝试的完全匹配 我的减速器输出一个键和突变,但我似乎无法将突变与预期进行比较。它显示的对象相同,但地址为0,错误如下:Hadoop 如何测试含有突变的还原剂,hadoop,mrunit,Hadoop,Mrunit,我试图使用MRUnit,但我所看到的示例中没有一个与我所尝试的完全匹配 我的减速器输出一个键和突变,但我似乎无法将突变与预期进行比较。它显示的对象相同,但地址为0,错误如下: junit.framework.AssertionFailedError: expected: <org.apache.accumulo.core.data.Mutation@0> but was <org.apache.accumulo.core.data.Mutation@0> junit.f
junit.framework.AssertionFailedError: expected: <org.apache.accumulo.core.data.Mutation@0> but was <org.apache.accumulo.core.data.Mutation@0>
junit.framework.AssertionFailedError:应为:但为
我正在使用reduceDriver.run()方法,并尝试在预期的突变对象上使用实际值进行assertEquals。我有什么遗漏吗
感谢您的输入。突变没有合适的equals()实现。最好是比较getUpdates()和getRow()的结果。它们分别返回一个列表和一个字节[],并且很容易进行比较。突变有一个合适的equals()方法,至少在1.4.x行中是这样。但是,该方法调用一个私有serialize()方法,该方法修改要检查的数据 过去,我通过将突变包装在一个新的突变中来解决这个问题,该突变称为“引擎盖下的序列化”:
assertEquals(expectedMutation, new Mutation(actualMutation));
您可以扩展变异并将新类传递给mrunit。只需在新类中重写equals