BloomFilter——大规模数据处理利器
生活随笔
收集整理的这篇文章主要介绍了
BloomFilter——大规模数据处理利器
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。
一. 实例
为了说明Bloom Filter存在的重要意义,举一个实例:
假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”。为了避免形成“环”,就需要知道蜘蛛已经访问过那些URL。给一个URL,怎样知道蜘蛛是否已经访问过呢?稍微想想,就会有如下几种方案:
1. 将访问过的URL保存到数据库。
2. 用HashSet将访问过的URL保存起来。那只需接近O(1)的代价就可以查到一个URL是否被访问过了。
3. URL经过MD5或SHA-1等单向哈希后再保存到HashSet或数据库。
4. Bit-Map方法。建立一个BitSet,将每个URL经过一个哈希函数映射到某一位。
方法1~3都是将访问过的URL完整保存,方法4则只标记URL的一个映射位。
总结
以上是生活随笔为你收集整理的BloomFilter——大规模数据处理利器的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: fmincon函数求解过程中出现无解的情
- 下一篇: 贝叶斯决策 分类器