在分布式系统上处理大数据

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) 中运行

【讨论】:

以上是关于在分布式系统上处理大数据的主要内容,如果未能解决你的问题,请参考以下文章

大数据处理工具

大数据存储之分布式文件系统

分布式系统Kafka和ES中,JVM内存越大越好吗?

大数据技术基础笔记3 分布式文件系统HDFS

大数据岗位需要掌握哪些技能

谈分布式存储(上)