hadoop集群应该在相同的硬件上运行吗?

时间:2012-06-25 17:42:17

标签: hadoop

我记得在某处看过如果Hadoop运行的机器彼此非常不同,Hadoop的性能会大幅下降,但我似乎无法再发现这个评论了。我正在考虑在我的组没有直接管理的虚拟机阵列上运行Hadoop集群,我需要知道这是否应该放在我的请求中。

那么,我应该坚持使用所有具有相同硬件的机器,还是可以在不同硬件配置的不同机器上运行?

感谢。

2 个答案:

答案 0 :(得分:13)

以下论文描述了异构集群如何影响hadoop map-reduce的性能:

  

在异构群集中,节点的计算能力可能会有所不同   显着地。高速节点可以完成存储在a中的处理数据   节点的本地磁盘比低速对应的更快。之后   快速节点完成其本地输入数据的处理,即节点   必须通过处理位于其中的未处理数据来支持负载共享   或更多远程慢节点。当传输数据量由于   负载分配非常大,移动未处理数据的开销   从慢节点到快节点成为影响的关键问题   Hadoop的表现。

以下参考资料有更多详情:

  1. http://computerresearch.org/stpr/index.php/gjcst/article/view/749/658
  2. http://www.usenix.org/event/osdi08/tech/full_papers/zaharia/zaharia.pdf
  3. 它还提供了一些方法,可以提高异构群集的性能或避免性能损失。

    明智地建议您在群集中使用同质机器,但如果这些机器没有完全不同的规格和性能差异,则应继续构建群集。

    对于生产系统,您应该建议使用同质机器。对于开发而言,性能并不重要。

    然而,您应该能够在构建Hadoop集群之后对其进行基准测试。

答案 1 :(得分:3)

同质群集当然是理想的,但并非绝对必要。例如,Yahoo!,Inc.在其生产环境中运行异构集群。通过与那里的研究人员交谈,他们发现由于调度问题导致性能受到影响(他们正在努力为他们的工具添加性能感知调度,这是一个足够大的打击),但惩罚并没有严重。