问题标签 [mrunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mapreduce - MRUnit 和 AvroMapper
AvroMapper
需要2个参数:
mapDriver 需要 4 个参数:
我可以MRUnit
用于单元测试AvroMapper
吗?
java - 找到了类 org.apache.hadoop.mapreduce.TaskInputOutputContext,但接口是预期的
我正在尝试使用MRUnit 1.0.0 来测试 Hadoop v2 Reducer,但尝试时出现异常:
我假设这意味着我在某种程度上不匹配 Hadoop API 的版本,就像在这个 SO question中一样,但我不确定问题出在哪里。我正在使用 Maven 来引入依赖项,使用来自 repo.hortonworks.com 的 Hadoop 2.2.0.2.0.6.0-76 和来自 repo1.maven.org 的 MRUnit 1.0.0:
测试用例如下:
在其他地方,在HH
包中,Reduce 被定义为一个非常简单的内部类:
看到什么奇怪的东西了吗?MRUnit 是否尝试使用旧/新版本的 API?
hadoop - MRunit:如何测试自定义排序比较器?
我正在尝试使用 MRunit 来测试我的sortComparatorClass
. 似乎 MRunit 应该能够使用该setKeyOrderComparator
方法执行此操作,但是当我运行mapReduceDriver
它时,它没有调用类的compare()
方法SortComparator
。
很确定我在使用 MRunit API 时做错了什么。
这是我的单元测试代码:
这是我的测试sortComparator
:
当我运行测试时,我得到这个输出:
但是该类没有输出sortComparator
- 它没有对键进行反向排序,所以我知道我的comparator()
方法没有被调用。
谁能告诉我我做错了什么?是否可以使用 MRunit 来测试我自己的比较器类?有没有更好的方法来为自定义比较器类进行单元测试?
仅供参考,以下是我的 Pom 的相关依赖项:
java - 带有模拟上下文的 Hadoop 单元测试
我正在尝试为 hadoop 作业编写单元测试。问题是映射器使用传递给它的 Context 参数来确定此时它正在读取哪个文件。它进行以下调用:
但是,在使用 MRUnit 为映射器编写单元测试时,我似乎找不到任何方法来模拟这个 Context 对象。甚至 MapDriver 似乎也没有任何设置新 Context 对象的选项。有没有办法可以为这个映射器类编写单元测试?
java - Hadoop Junit测试面临编译错误
我是 hadoop 新手,我正在关注 hadop 权威学习指南。我正在使用 MRunit 进行单元测试,但是在为减少任务进行测试时,我遇到了编译错误。
下面是我的reduce java文件:MaxTemperatureReducer.java
下面是我的 Junit 测试文件:MaxTemperatureReducerTest.java
当我使用驱动程序类的withReducer() 方法将reduceclass 的实例,即new MaxTemperatureReducer() 传递给我的reducerdriver 时。我得到低于编译错误。
请帮帮我,因为我可以看到 MaxTemperatureMapper 类扩展了 Reducer 类,我无法理解为什么 withReducer() 方法不接受 MaxTemperatureReducer 实例。
谢谢, 普里亚兰詹
java - 使用 MrUnit 对 Mongo-Hadoop 作业进行单元测试
您如何对 mongo-hadoop 作业进行单元测试?
到目前为止我的尝试:
产生这个输出:
类 org.bson.BasicBSONObject 的 io.serializations 中没有适用的类在 conf 中实现序列化
java.lang.IllegalStateException at org.apache.hadoop.mrunit.internal.io.Serialization.copy(Serialization.java:67) at org.apache.hadoop.mrunit.internal.io.Serialization.copy(Serialization.java:91 ) 在 org.apache.hadoop.mrunit.TestDriver.copy(TestDriver.java:608) 在 org.apache.hadoop 的 org.apache.hadoop.mrunit.internal.io.Serialization.copyWithConf(Serialization.java:104)。 mrunit.TestDriver.copyPair(TestDriver.java:612) 在 org.apache.hadoop.mrunit.MapDriverBase.addInput(MapDriverBase.java:118) 在 org.apache.hadoop.mrunit.MapDriverBase.withInput(MapDriverBase.java:207) ...
mapreduce - 带有 HBase 和 MapReduce 的 MRUnit 在序列化时出现错误
我正在尝试使用 MRUnit 测试我的 MapReduce,当我进行集成测试时,它可以工作。我有一些单元测试,我也想通过它们。
我的 MRUnit 驱动程序和 MapReduce 类是:
当我定义输入时,我得到一个错误:
我猜这是因为它不喜欢 Result 和 KeyValue 对象,因为它们不是可写的,但我不明白为什么集成测试会起作用。当所有这些对象都实现 Writable 时,它之前使用 Hbase 0.94,现在我使用 HBase 0.96。任何线索我应该如何在这里使用 MRUnit?
maven - Avro with MRUnit gives InstantiationException
I'm using:
- hadoop-client 2.2.0
- mrunit 1.0.0
- avro 1.7.6
- avro-mrunit 1.7.6
... and the entire thing is being built and tested using Maven.
I was getting a NullPointerException until I followed the instructions at MRUnit with Avro NullPointerException in Serialization.
Now I am getting an InstantiationException:
The Avro model looks like this:
The mapper looks like this:
The test that is failing (the only test I have at the moment) looks like this:
I'm pretty new with both Avro and MRUnit, so I am still trying to fully understanding the workings between them. In the unit test output I see warnings about log4j and don't know for certain that this isn't part of the problem (thought I doubt it).
java - MRUnit 在 hbase Result 对象中传递值
我正在用 MRUnit 测试我的映射器。我将键和值列表作为输入从测试类传递给映射器。问题是 :
问题是在结果对象中只保留了第一个键值。其他的被存储为空。
hadoop - 使用 MRUnit 测试 GenericWritable
比如说,我有一个像下面这样的类:
这是映射器:
有没有办法在 MRUnit 中使用 MapDriver 测试映射器?注意:我问的原因是因为使用 .withOutput 不会验证结果
或者我应该使用 .run() 方法并手动断言结果?