我计划编写一个批处理分布式计算系统,将使用大约10-20台计算机。系统某些部分的数据流约为50gb,而其他部分的数据流则小得多,约为1gb。
我正在考虑使用hadoop。可伸缩性并不重要,但我非常喜欢hadoopframewok提供的容错和推测性运行特性。像mpi或gearman这样的框架似乎没有提供这样的机制,我必须自己实现它们。
然而,我有一些怀疑,因为它似乎是为更大的数据量和可能更多的计算机优化。例如,《hadoop权威指南》一书明确提到:
高性能计算(hpc)和网格计算社区多年来一直在使用消息传递接口(mpi)等api进行大规模数据处理。一般来说,hpc中的方法是将工作分布在一组机器上,这些机器访问由san托管的共享文件系统。这对于以计算密集型为主的作业非常有效,但当节点需要访问更大的数据量(数百GB,mapreduce真正开始发挥作用的时间点)时,这就成了一个问题,因为网络带宽是瓶颈,计算节点变得空闲。
我的问题是:
hadoop在处理相对较少的数据和/或计算机时是否有相当大的开销?
有没有另一个框架以任何方式提供与hadoop相近的容错处理?
1条答案
按热度按时间tzdcorbm1#
hadoop将在您的环境中引入开销,这两种开销都是从操作的Angular 来看的(新系统仍在经历重大的开发和更改);包含多个服务器和磁盘的集群,您必须维护这些服务器和磁盘;等等,还有计算开销——可以说“叫醒大象”需要一些时间,如果工作需要一个小时,这些时间可以忽略不计,但是如果你期望一个工作在一分钟内结束,这些时间是显而易见的。
特别是1gb甚至50gb的数据,这些天你可以放在内存中,所以多线程,单服务器解决方案可以更有效地解决这个问题。。。