这不是我的实际问题。但我想测试边界,以便选择最佳甚至是好的策略。
理论上的问题是:
我有2个文件,2Tb(如果更好的话,使其为4Tb)每个键,1行1个字符串,但是使用强编码器,这使得每个条目都非常不同。
我需要知道2个文件是否共享其中一些密钥。我们可以假设低重叠,以便输出不是存储问题。或者换句话说:我想比较2个大文件。
在虚拟方法中,我要做的是将file1分成一堆,与我的ram一样大,然后在file2上循环查找匹配项。我需要在I / O上循环一下。
我们也可能会假设“就地”排序不可用。如果算法的一部分,它是一个选项。
我认为mapreduce / hadoop可能会得到一种解决方案,第一个显而易见的是使用排序算法,因为在任何情况下密钥都使用字符。我们需要映射25 alpha加几个字母数字。
但确实存在更好的方法吗?