这个问题看起来很简单,但我不明白它背后的真正工作原理。我知道人们会说,将文件分成512兆字节的块,然后使用Map Reduce像使用归并排序一样对它们进行排序。
那么这就是我的实际问题:假设我将文件分成512兆字节的块,然后发送到不同的主机上进行排序。假设这些机器使用了归并排序。现在假设我有2000台机器,每台机器都对2000个512兆字节的块进行了排序。现在当我合并它们时,这怎么工作呢?大小不会继续增加吗?例如,合并两个512兆字节的块将使其变为1024兆字节,这是我的RAM的大小,所以这该怎么办呢?任何机器都无法将超过512兆字节的块与另一个块合并,因为这样会超过1 GB。
在合并结束时,我如何能够将两个0.5 TB块合并到另一个0.5 TB块中。虚拟内存的概念是否涉及其中?
我在这里澄清我的基础知识,我希望我正在正确地提出这个非常重要的问题。此外,谁应该执行这个合并(在排序之后)?我的计算机还是这2000台机器中的一部分?
那么这就是我的实际问题:假设我将文件分成512兆字节的块,然后发送到不同的主机上进行排序。假设这些机器使用了归并排序。现在假设我有2000台机器,每台机器都对2000个512兆字节的块进行了排序。现在当我合并它们时,这怎么工作呢?大小不会继续增加吗?例如,合并两个512兆字节的块将使其变为1024兆字节,这是我的RAM的大小,所以这该怎么办呢?任何机器都无法将超过512兆字节的块与另一个块合并,因为这样会超过1 GB。
在合并结束时,我如何能够将两个0.5 TB块合并到另一个0.5 TB块中。虚拟内存的概念是否涉及其中?
我在这里澄清我的基础知识,我希望我正在正确地提出这个非常重要的问题。此外,谁应该执行这个合并(在排序之后)?我的计算机还是这2000台机器中的一部分?