海量数据
海量数据处理的基本方法
分而治之/hash映射 + hash统计 + 堆/快速/归并排序;
堆(Heap)
海量日志数据,统计出某日访问百度次数最多的那个IP
Trie树/Bloom filter/Bitmap
双层桶划分
外排序
分布式处理之Hadoop/Mapreduce
为什么难以处理
给定 a、b 两个文件,各存放 50 亿个 url,每个 url 各占 64 字节,内存限 制是 4G,让你找出 a、b 文件共同的 url?
有 10 个文件,每个文件 1G,每个文件的每一行存放的都是用户的 query, 每个文件的 query 都可能重复。要求你按照 query 的频度排序。
给你一个包含20亿个int类型整数的文件,计算机的内存只有2GB,怎么给它们排序?
一张100万x100万的图像,一条曲线围城一个闭合区域,给一堆点,怎么判断这些点在不在这个闭合区域内?注意这里内存很小,不能把整张图片加载到内存
两块广告牌,五个广告商,设计一个算法,在一段时间内五个广告商的广告出现次数为1:2:3:4:5,注意两个广告牌不能同时播同一个广告
有一千万(甚至更多)个文件,每个文件中有很多的单词(有重复),使用什么数据结构或方法能够快速地找到出现次数最多的单词?
给定 40 亿个不重复的没排过序的 unsigned int 型整数,然后再给定一个数,如何快速判断这个数是否在这 40 亿个整数当中?
海量数据分布在100台电脑中,请高效统计出这批数据的TOP10
一个文件,每一行都是一个商品购买记录,统计购买次数最高的TopK