在分布式系统上处理大数据
Posted
技术标签:
【中文标题】在分布式系统上处理大数据【英文标题】:Processing big data on distributed system 【发布时间】:2021-05-25 16:47:02 【问题描述】:我在一次采访中被要求解决这个问题:假设有 400 万个 cmets,每个 cmets 都有自己的 id 和时间戳。设计一个有效的算法来找到最近的 1000 个 cmets。你有 40 台服务器,每台服务器一次可以处理 10000 个 cmets。 我正在考虑使用 MapReduce。如何实现 map 和 reduce 功能来解决这个问题?
【问题讨论】:
【参考方案1】:由于问题特别询问了高效算法,我怀疑面试官不太关心 MapReduce 等技术,而是更关心您将使用的底层算法。这似乎是合并排序的一个应用程序。在这种情况下,您会将工作负载划分为 10K 块,分配每个块以在节点上排序并合并。完成后,您应该将所有 400 万个条目按日期排序,然后您可以获取最近的 1000 个条目。该算法将在 O(n log n) 中运行
【讨论】:
以上是关于在分布式系统上处理大数据的主要内容,如果未能解决你的问题,请参考以下文章