我读过一些文章,表明 Hadoop 的真正设计目的只是在单个物理位置的集群上工作,而不是在多个广泛分布的节点上工作(例如,从多个站点通过互联网运行分布式集群)。
有人有尝试跨多个站点使用 Hadoop 的真实经验吗?我会遇到什么样的问题?或者我最好选择不同的框架(例如 BOINC)。
最佳答案
如果在一组相对本地的节点上执行与在一组广泛分布的节点上执行之间存在任何差异,那就是在节点之间来回移动大量数据所需的时间增加。如果您遇到的问题涉及处理、聚合和连接大量数据,那么您必然会在节点之间发送大量数据。这意味着无论您选择什么平台(hadoop、storm 等),您都必须处理这个问题。 BOINC 或其他一些基于志愿者的系统可能更便宜,但您的实现仍然会受到高昂的数据传输成本的影响。此外,您可能会在组合中引入节点异构性,这将使您的实现的开发和调试变得更加有趣。
顺便说一句,hadoop 和 BOINC 是两种截然不同的动物,解决的问题也截然不同。
关于Hadoop 不适合跨多个站点进行分布式处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839696/