我必须记录几个基准变量。不幸的是,有些变量要求我在hadoop代码中执行测量(map(),reduce(),InputFormat等)。我想知道这样做的“正确”方法是什么。我可以使用全局变量来存储我的基准变量并在Tool.run()完成之前转储它们,但我认为有更好的方法。有人知道怎么做,或者有任何想法吗?
更新
由于某些限制,基准代码必须嵌入hadoop中。我有一个“测试人员”应用程序,它运行许多hadoop作业并收集基准测试结果。我们的想法是在单个“测试者”运行中运行作业并从作业执行中收集基准数据。
答案 0 :(得分:2)
没有什么能阻止你独立于MapReduce对这些方法进行基准测试。 M / R并不神奇 - 只是一个JVM在服务器上运行一些代码。
我们一直针对各个Map和Reduce函数运行JUnit测试。关于剖析它们没有什么大不相同的。