海量数据处理解题方式

一、 方法论(Ref:july's blog

    blog中有些关于hash、trie等数据结构和算法的链接,有时间可以巩固一下。

    -- 无论是这些海量数据处理面试题也好,还是算法也好,面试时70~80%的人不是倒在这两方面,而是倒在基础之上(诸如语言,数据库,操作系统,网络协议等等),所以,无论任何时候,基础最重要,没了基础,便什么都不是--

1. 分而治之/hash映射 + hash统计 + 堆/快速/归并排序;

    要点:1) 核心是hash映射(hash取模)

               2) 注意他所用的最小/最大堆方法:返回Topk时,以k个元素建堆,防止空间溢出。

2. 双层桶划分、Bloom filter/Bitmap;

   要点:1)鸽舍原理

              2)bit-map

              3)基数排序

              4) Bloom filter将集合中的元素映射到位数组中,用k(k为哈希函数个数)个映射位是否全1表示元素在不在这个集合中。Counting bloom filter(CBF)将位数组中的每一位扩展为一个counter,从而支持了元素的删除操作。Spectral Bloom Filter(SBF)将其与集合元素的出现次数关联。SBF采用counter中的最小值来近似表示元素的出现频率。

3. Trie树/数据库/倒排索引;

  要点:1)Trie树:适用于数据量大、重复多、数据种类小可以放到内存。(前缀树)

             2)数据库:适用于大数据量的增删改查

             3)倒排索引:词项-文档(频率)映射,适于关键字查询。反向索引、正向索引之分。

4. 外排序;

要点:1)参见编程珠玑chap1

            2)多路归并排序+磁盘排序(sorting algorithm中的外部排序)

5. 分布式处理之Hadoop/Mapreduce。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值