我刚开始学习Hadoop,在官方指南中,它提到双倍的
集群能够使查询数据大小的两倍速度与原始数据一样快。
另一方面,传统的RDBM仍然花费两倍的时间在查询结果上。
我无法掌握集群和处理数据之间的关系。 希望有人能给我
一些想法。
这是分布式计算的基本思想。
如果您有一台服务器处理大小为 X 的数据,它将花费时间 Y。如果您有 2X 数据,则同一台服务器将(大致(在其上花费 2Y 时间。
但是,如果您有 10 台并行工作(以分布式方式(的服务器,并且它们都拥有整个数据 (X(,那么他们将花费 Y/10 的时间。通过在一台服务器上拥有 10 倍的资源,您将获得相同的效果,但通常这是不可行和/或不可行的。(就像将 CPU 功率提高 10 倍不是很合理。
这当然是一个非常粗略的简化,Hadoop不会将整个数据集存储在所有服务器上 - 只是需要的部分。Hadoop在每个服务器上都有一个数据子集,服务器处理它们必须处理的数据,最终产生一个"答案"。这需要通信和不同的协议就共享哪些数据、如何共享、如何分发数据等等达成一致——这就是Hadoop所做的。