![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析(海量数据)
介绍对于海量数据的处理问题
W墨眉W
这个作者很懒,什么都没留下…
展开
-
如何找出某一天访问网站最多的 IP
1、Question现有海量日志数据保存在一个超大文件中,该文件无法直接读入内存,要求从中提取某天访问百度次数最多的那个 IP。2、分析这道题只关心某一天访问百度最多的 IP,因此,可以首先对文件进行一次遍历,把这一天访问百度 IP 的相关信息记录到一个单独的大文件中。 接下来采用的方法与上一题一样,大致就是先对 IP 进行哈希映射。 接着使用 HashMap 统计重复 IP 的次数,最后计算出重复次数最多的 IP。注:这里只需要找出出现次数最多的 IP,可以不必使用堆,直接用一.原创 2020-07-22 19:40:34 · 600 阅读 · 0 评论 -
如何从大量数据中找出高频词
1、Question有一个 1GB 大小的文件,文件里每一行是一个词,每个词的大小不超过 16B,内存大小限制是 1MB,要求返回频数最高的 100 个词(Top 100)。2、分析仍然是大数据量的处理问题。由于文件大小远超过内存大小。所以仍然采用分治思路。把大文件拆分多分。如果5000份,每份200KB。如果2000份,每份500KB。此处分成5000份,每份200KB。每次处理200KB的文件思路如下:首先遍历大文件,对遍历到的每个词x,执行hash(x) % 5000,将...原创 2020-07-22 19:38:53 · 1566 阅读 · 0 评论 -
如何从大量的URL中找出相同的URL
1、Question给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL2、分析50亿 * 64B = 320GB (1GB=1000 MB=1000 000 KB=1000 000 000 B)320GB的文件,无法直接加载到内存中进行处理。对于数据量太大无法一次加载到内存的题目,一般采用分治法。把大的文件拆分中多个文件,然后单独处理每个文件,最终再汇总每个计算结果。把320GB分成1000份,一份大概原创 2020-07-22 19:35:20 · 1731 阅读 · 0 评论