如何测试hadoop作业性能

How to test hadoop job performance

我已经为 Apache Hadoop 实现了一个基于 SON 的频繁项集 map-reduce 算法。现在我需要测试它的性能,即研究它的执行时间如何使用不同的数据集变化,并将它与不同版本的算法进行比较,以便选择最好的一个。

因此,我 运行 在一个 6 机集群上执行多个作业,我注意到即使保持相同的数据集和相同的算法版本,执行时间也会有很大差异。我得出的结论是,在这种类型的环境中,执行时间是不可预测的,因为计算 运行s.

的机器中请求的数据不可用(不可用)

我怎样才能运行以可靠的方式进行这种类型的测试?

对于具有相同配置的相同数据集,有时相同的 Hadoop 作业在所有时间都发生变化是很常见的。主要原因可能是处理 Map/Reduce 任务的执行容器的可用性,这是不确定的。

作业的运行时间可能不确定,因为您 运行 作业所在的集群可能因其他作业而忙,有时当您 运行 作业时,您的作业可能是获得非常小的执行容器。

如果您正在处理基准测试作业、数据集或配置,那么首先要确保集群非常空闲并且所有节点都已启动并且 运行正在运行。

我们总是可以注意到观察作业性能的一件事是从作业完成页面考虑 Average Map TimeAverage Reduce TimeAverage Shuffle TimeAverage Merge Time 的值,这些指标为您提供了很多工作 运行 的可靠统计数据。 Elapsed 时间值可能因资源可用性而异。