如何测试hadoop作业性能
How to test hadoop job performance
我已经为 Apache Hadoop 实现了一个基于 SON 的频繁项集 map-reduce 算法。现在我需要测试它的性能,即研究它的执行时间如何使用不同的数据集变化,并将它与不同版本的算法进行比较,以便选择最好的一个。
因此,我 运行 在一个 6 机集群上执行多个作业,我注意到即使保持相同的数据集和相同的算法版本,执行时间也会有很大差异。我得出的结论是,在这种类型的环境中,执行时间是不可预测的,因为计算 运行s.
的机器中请求的数据不可用(不可用)
我怎样才能运行以可靠的方式进行这种类型的测试?
对于具有相同配置的相同数据集,有时相同的 Hadoop 作业在所有时间都发生变化是很常见的。主要原因可能是处理 Map/Reduce 任务的执行容器的可用性,这是不确定的。
作业的运行时间可能不确定,因为您 运行 作业所在的集群可能因其他作业而忙,有时当您 运行 作业时,您的作业可能是获得非常小的执行容器。
如果您正在处理基准测试作业、数据集或配置,那么首先要确保集群非常空闲并且所有节点都已启动并且 运行正在运行。
我们总是可以注意到观察作业性能的一件事是从作业完成页面考虑 Average Map Time
、Average Reduce Time
、Average Shuffle Time
、Average Merge Time
的值,这些指标为您提供了很多工作 运行 的可靠统计数据。 Elapsed
时间值可能因资源可用性而异。
我已经为 Apache Hadoop 实现了一个基于 SON 的频繁项集 map-reduce 算法。现在我需要测试它的性能,即研究它的执行时间如何使用不同的数据集变化,并将它与不同版本的算法进行比较,以便选择最好的一个。
因此,我 运行 在一个 6 机集群上执行多个作业,我注意到即使保持相同的数据集和相同的算法版本,执行时间也会有很大差异。我得出的结论是,在这种类型的环境中,执行时间是不可预测的,因为计算 运行s.
的机器中请求的数据不可用(不可用)我怎样才能运行以可靠的方式进行这种类型的测试?
对于具有相同配置的相同数据集,有时相同的 Hadoop 作业在所有时间都发生变化是很常见的。主要原因可能是处理 Map/Reduce 任务的执行容器的可用性,这是不确定的。
作业的运行时间可能不确定,因为您 运行 作业所在的集群可能因其他作业而忙,有时当您 运行 作业时,您的作业可能是获得非常小的执行容器。
如果您正在处理基准测试作业、数据集或配置,那么首先要确保集群非常空闲并且所有节点都已启动并且 运行正在运行。
我们总是可以注意到观察作业性能的一件事是从作业完成页面考虑 Average Map Time
、Average Reduce Time
、Average Shuffle Time
、Average Merge Time
的值,这些指标为您提供了很多工作 运行 的可靠统计数据。 Elapsed
时间值可能因资源可用性而异。