-1

我在一次采访中被要求解决这个问题:
假设有 400 万条评论,每条评论都有自己的 id 和时间戳。设计一个有效的算法来查找最近的 1000 条评论。你有 40 台服务器,每台服务器一次可以处理 1 万条评论
我正在考虑使用 MapReduce。我如何实现 map 和 reduce 功能来解决这个问题?

4

1 回答 1

1

由于该问题专门询问了高效算法,我怀疑面试官不太关心 MapReduce 等技术,而是更关心您将使用的底层算法。这似乎是合并排序的一个应用程序。在这种情况下,您可以将工作负载分成 10K 块,分配每个块以在节点上排序并合并。完成后,您应该将所有 400 万个条目按日期排序,然后您可以获取最近的 1000 个条目。该算法将在 O(n log n) 中运行

于 2021-05-25T16:55:15.423 回答