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——大规模数据处理利器相关推荐

  1. BloomFilter–大规模数据处理利器(转)

    BloomFilter–大规模数据处理利器 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求1 ...

  2. BloomFilter ——大规模数据处理利器

    BloomFilter--大规模数据处理利器 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求 ...

  3. 那些优雅的数据结构(1) : BloomFilter——大规模数据处理利器

    BloomFilter--大规模数据处理利器 https://www.cnblogs.com/heaad/ Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通 ...

  4. Bloom Filter 大规模数据处理利器

    2019独角兽企业重金招聘Python工程师标准>>> 最近工作中涉及到bloom Filter,真是一把科研利器呀,大数据.网络.云等等都可以用到! Bloom Filter是由B ...

  5. 大规模数据处理Apache Spark开发

    大规模数据处理Apache Spark开发 Spark是用于大规模数据处理的统一分析引擎.它提供了Scala.Java.Python和R的高级api,以及一个支持用于数据分析的通用计算图的优化引擎.它 ...

  6. 大规模数据处理的演化历程(2003-2018)

    转自:https://www.iteblog.com/archives/2430.html 本文翻译自<Streaming System>最后一章<The Evolution of ...

  7. Serverless 在大规模数据处理的实践

    作者 | 西流  阿里云技术专家 <关注阿里巴巴云原生公众号,后台回复 606 即可下载相关 PPT> 前言 当您第一次接触 Serverless 的时候,有一个不那么明显的新使用方式:与 ...

  8. 3个步骤,4大平台,完成大规模数据处理

    本文由百度智能云大数据平台技术架构师--李莅在百度开发者沙龙线上分享的演讲内容整理而成.本次分享围绕云原生数据湖架构的价值展开,深度数据湖计算和统一元数据的技术架构.希望开发者能够通过本文对一站式大数 ...

  9. Serverless在大规模数据处理的实践

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 前言 当您第一次接触 Serverless 的时候,有一个不那么明显的新使用方式:与传统的基于服务 ...

最新文章

  1. 用神经网络分类左和右
  2. 看完这一篇,再也不用担心 Git 的“黑魔法”
  3. 406(浏览器接收的响应类型和服务器返回的响应类型不匹配)
  4. PB datawindow中的文本调整打印长度
  5. appbarlayout 折叠后 不允许滑动_还在纠结要不要建阳光房?看看可折叠阳光房,或许你就能做选择了...
  6. graph-easy使用简介
  7. 【C语言指针】 回调函数、冒泡函数模拟实现qsort、指针和数组笔试题解析
  8. 【Vue】—创建组件
  9. uni-app之实现分页
  10. 桌面上 计算机 图标打不开怎么办,桌面图标打不开怎么办?WinXP电脑桌面图标打不开解决方法...
  11. mysql 慢查询及深入调优
  12. 一台显示器分成双屏_华硕显示器贴心相伴:云办公、云学习宅家无忧
  13. 文件上传到服务器出错(Permission denied)
  14. 常识——多台电脑共用一套键鼠
  15. 7、WiFi共享大师
  16. 文件加密系统是如何实现企业数据高效安全保护的?
  17. LeetCode207: 课程表(字节手撕算法拓扑排序)
  18. Everything研究之读取NTFS下的USN日志文件(2)
  19. 2018-ACM省赛
  20. HBase java 的增删改查

热门文章

  1. 找工作是一种必须的生活阅历
  2. linux udp套接字编程获取报文源地址和源端口(二)
  3. python gui 可视化开发工具_python开发的gui漂亮吗
  4. fedora21 mysql_在fedora21 上的php+mysql+apache环境搭建
  5. 用C语言实现分治方法数组的排序,C语言实现分治法实例
  6. 数据通信技术_共建价值空间 共赢发展契机——2020华为贵数通新技术创享会在遵义市圆满举行...
  7. lex编译dos命令_微软新的命令行工具:Windows Terminal
  8. h5软盘占位把定位内容往上顶_安徽省计算机一级考试选择题、操作题、打字题库2012年上半年版.xls...
  9. window.open打开新窗口不改变原窗口_我P的图不高级,就很可耻吗?
  10. mysql1045_win10系统登录mysql时报错1045的解决方案