海量数据相关处理

十道海量数据处理面试题与十个方法大总结:http://blog.csdn.net/v_JULY_v/article/details/6279498

1.哈希法

2.Bit-map法

3.Bloom filter法

4.数据库优化法

5.倒排索引法

6.外排序法

7.Trie树

8.堆

9.双层桶法

10.MapReduce法

经典实例

top K问题

1.提取访问最多的IP
分治+hash---用hash映射(即对10000取模)得到10000个小文件,在小文件中用hash-map或堆排序
2.统计搜索引擎最热门的10个查询串
用O(N)完成hash表统计,再借助堆,维护一个K小根堆为N*O(logK)
用Trie树遍历所有查询串,没有出现为0,再用10个元素的最小根堆
3.1G文件,内存限制1M,返回频数最高的100个词
用hash映射hash(x)%5000对1G进行分割,直到小文件小于1M,再对每个小文件用hash_map或堆排序
4.10个文件,每个1G,每一行为用户的query,可能重复,对query的频度排序
1)按照hash(query%10)hash映射将query写入10个文件,再载入2G的内存中分别对每个文件里的query排序,最后归并排序10个文件
2)可能重复次数比较多,直接采用hash_map或堆来排序
3)做完hash映射后,交给多个文件来处理,采用分布式架构来处理(MapReduce),最后合并
5.a,b两个文件各存放50亿个url,内存4G,找到a,b共同的url
用hash映射(hash(url%1000))分别分割a,b
6.在2.5亿个整数中找出不重复的数
1)类同与题1,先分为5000个小文件,再维护一个hash_map或数组找到不重复的,再归并
2)用位图法(Bit-Map)`00为不存在,01为1个,10为多个,总共需要2^32*2位,即2^30byte(1G),进行扫描
7.

重复问题

位图法

排序问题

分治法(将大文件映射为小文件)、位图法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值