这个问题看起来很简单,但我无法理解它背后的真正工作。我知道人们会说,分解成 512 Megs 块并像使用 Map reduce 的 Merge Sort 一样对它们进行排序。
所以这是我的实际问题:
假设我将文件分成 512 Megs 块,然后发送到不同的主机对它们进行排序。假设这些机器使用了归并排序。现在说,我有 2000 台机器,每台机器都分类了 2000、512 兆的块。现在,当我将它们合并回来时,它是如何工作的?尺寸不会继续增加吗?例如,合并两个 512 兆将产生 1024 兆,这是我的 RAM 的大小,那么这将如何工作?任何机器都不能将超过 512 megs 的块与另一个块合并,因为那时大小 > 1 GB。
在合并结束时,我将如何能够将两个 0.5 TB 块与另一个 0.5 TB 块合并.. 虚拟内存的概念在这里发挥作用吗?
我来这里是为了澄清我的基础知识,我希望我能正确地(正确地)问这个非常重要的问题。另外,谁应该做这个合并(排序后)?我的机器还是那 2000 台机器中的几台?