0

我打算编写一个批处理分布式计算系统,它将使用大约 10-20 台计算机。系统某些部分的数据流约为 50GB,而在其他部分则要小得多,约为 1GB。

我正在考虑使用 Hadoop。可扩展性并不重要,但我真的很喜欢 Hadoop 框架提供的容错和推测运行功能。像MPIgearman这样的框架似乎没有提供这样的机制,我将不得不自己实现它们。

但是,我有一些疑问,因为它似乎针对更大的数据量和可能更多的计算机进行了优化。例如,Hadoop the Definitive Guide 一书明确提到:

高性能计算 (HPC) 和网格计算社区多年来一直在使用诸如消息传递接口 (MPI) 之类的 API 进行大规模数据处理。从广义上讲,HPC 中的方法是将工作分布在一组机器上,这些机器访问一个由 SAN 托管的共享文件系统。这适用于主要计算密集型作业,但当节点需要访问更大的数据量(数百 GB,MapReduce 真正开始发光的点)时就会成为问题,因为网络带宽是瓶颈并且计算节点变得空闲.

我的问题是:

  1. 当使用相对少量的数据和/或计算机时,Hadoop 是否有相当大的开销?
  2. 是否有另一个框架以任何接近 Hadoop 的方式提供容错处理?
4

1 回答 1

2

Hadoop 将在您的环境中引入开销,无论是从操作角度来看(新系统仍在经历重大开发和更改);具有您必须维护的多个服务器和磁盘的集群;等等以及计算开销 - 可以这么说,“唤醒大象”需要一些时间,如果工作需要一个小时,这可以忽略不计,但如果您希望工作在一分钟内结束,则很明显。

特别是 1GB 甚至 50GB 是您现在可以放入内存中的数据,因此多线程、单服务器解决方案可以更有效地解决这个问题……

于 2013-04-28T10:10:17.103 回答