我打算编写一个批量分布式计算系统,它将使用大约10-20台计算机。系统某些部分的数据流量约为50GB,而其他部分的数据流量则相当于~1GB。
我正在考虑使用Hadoop。可扩展性并不重要,但我非常喜欢Hadoop framewok提供的容错和推测性运行功能。像MPI或gearman这样的框架似乎没有提供这样的机制,我必须自己实施。
但是,我有一些疑问,因为它似乎针对更大的数据量和可能更多的计算机进行了优化。例如,Hadoop the Definitive Guide一书明确提到:
高性能计算(HPC)和网格计算社区拥有 多年来一直在进行大规模数据处理,使用Message Passing等API 接口(MPI)。从广义上讲,HPC中的方法是在集群中分配工作 由SAN托管的访问共享文件系统的计算机。这适用于 主要是计算密集型作业,但在节点需要时成为问题 访问更大的数据量(数百GB,MapReduce真正的点 由于网络带宽是瓶颈和计算节点,因此开始大放异彩 变得闲着。
我的问题是:
答案 0 :(得分:1)
Hadoop将在您的环境中引入开销,形成运营视角(新系统仍在进行重大开发和更改);您必须维护的具有多个服务器和磁盘的群集;等等计算开销 - “唤醒大象”可以这么说,如果工作需要一个小时就需要一些时间可以忽略不计,但是如果你希望工作在一分钟之内结束就会引人注目。
具体来说,1GB甚至50GB是您现在可以放入内存的数据,因此多线程,单服务器解决方案可以更加有效...