在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

2012.3.19 微博热报:布隆过滤与多路归并

  • 2012-03-18
  • 本文字数:1071 字

    阅读完需:约 4 分钟

布隆过滤与多路归并

JavaChen 发布一条可作为面试题的微博

给你 A,B 两个文件,各存放 50 亿条 URL,每条 URL 占用 64 字节,内存限制是 4G,让你找出 A,B 文件共同的 URL。如果是三个乃至 n 个文件呢? http://t.cn/zOMmWru

李良普

bloom filter 可以实现,但是很少使用。

HubbleDotNet

布隆的关键是随机数的选取要尽可能接近平均分布

kkkua

BF 只是说有哪些 URL 在以前已出现过了。 优点难度的是真正“找出”n 个 URL 列表中所有那些相同的 URL(聚类问题)。好办法是做一个 incremental index, 边输入边去重,正如高性能的重复网页检测

海纳百通

我的理解是:1 布隆过滤 是能“激进地”找出“很可能已存在的”URL;2 但是,在发现可能的重复后,要确定并记录下 URL,就要索引到 URL,并做全文比对;3 这个问题里还连带提到“n 个文件”。。。所以,有改进的空间吧?

bnu_chenshuo

毛估了一下,单机(4G 内存,双硬盘)4 个小时应该能搞定,没用到 bloom filter。

陆鑫 Lucian

bloom filter 是我能想到速度最快的方法了,这题的关键就是先把要处理的数据总数降低数个量级,剩下的就好办了。陈硕老师能介绍下你的思路,效率如何吗?

matrix-reload

用 MapReduce 方法吧

bnu_chenshuo 回复 @陆鑫 Lucian

你估计用 bloom filter 解决,单机花多少小时?我的思路很简单,分块(1G)排序再多路归并,在归并的同时求集合的交集。

bnu_chenshuo 回复 @如此玄妙

多路归并用不着“最后一次归并 将 2 个一样大的已排序的文件合并”。AB 两个文件,分块排成各 300 个 1G 的文件,然后同时打开这一共 600 个文件读数据,两套文件分别多路归并,并求交集,把结果写出来即可。

原题不是要求单机 4G 内存吗?“300 个 1g 文件归并的比较次数 会和比 2 个 150g 文件大很多”是的,但是你那两个 150g 的文件事先要花多长时间生成?“每次取出数据,都需要在一个 300 条记录的树或者堆上进行一次排序”是的,不过这并不影响整体速度,内存处理速度只要高于磁盘读数据的速度即可

摇摆巴赫

bloom 需要磁盘随机 IO 吧,内存里的 hash bit 相等后还得磁盘读出来看 url 是不是相同,分块排序应该是顺序磁盘 IO,我觉得哪个快要看重复率

@TreapDB

先把这些 url 算 hash%100, 分别存到 100 个文件夹里,每个文件夹有两个文件,分别来自 A 和 B. 这两个小文件可以在内存中求交集生成小文件。最后,把这些交集小文件 cat 成一个文件。并不要求有序。

今日微博推荐

梁斌penny

推荐理由:清华大学计算机科学与技术系在读博士;《走进搜索引擎》作者、《深入搜索引擎》译者, THUIRDB 的 Coder,个人博客地址: http://blog.csdn.net/pennyliang

2012-03-18 20:492662
用户头像

发布了 479 篇内容, 共 183.5 次阅读, 收获喜欢 54 次。

关注

评论

发布
暂无评论
发现更多内容

2025年智慧物联与电子信息工程国际学术会议(IoTEIE 2025)

搞科研的小刘

电子信息工程

第四届数理统计与经济分析国际学术会议 (MSEA 2025)

搞科研的小刘

统计

荣耀的星际穿越,中国的AI星海

脑极体

AI

YashanDB如何助力企业实现数据驱动决策

数据库砖家

YashanDB数据安全合规策略和企业实施指南

数据库砖家

区块链 Web3 系统的开发

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

海外网红推广平台选择策略:不同平台的受众特征与推广效果分析

Wolink

跨境贸易 出海 海外社媒营销 海外营销推广 海外红人营销

YashanDB日志机制详解及故障排查实用指南

数据库砖家

叮当活动报名小程序系统:高效便捷的报名管理解决方案

微擎应用市场

深度数据挖掘:专业级国外社交媒体分析网站功能详解

沃观Wovision

社交媒体 社媒监测 社交媒体监测 社媒分析

随手刷题小程序:高效刷题学习解决方案

微擎应用市场

评估出海媒体监测工具的3个关键点

沃观Wovision

社媒监测 海外社交媒体监控 媒体监测 社交媒体监测 社媒分析

YashanDB数据安全合规框架与实施指南

数据库砖家

微信公众号短视频红包营销模块:精准获客与高效转化利器

微擎应用市场

EverShop IDOR漏洞分析:未经授权的订单信息访问

qife122

网络安全 IDOR

YashanDB日志管理系统设计与实现

数据库砖家

YashanDB实时数据同步技术及其创新实现

数据库砖家

YashanDB日志分析和性能监控平台构建实用指南

数据库砖家

选择海外网红营销服务公司的5大黄金准则

Wolink

出海 海外社媒营销 海外营销推广 海外红人营销 品牌推广

拍宝积分商城小程序系统:一体化积分运营解决方案

微擎应用市场

YashanDB如何满足企业级数据合规需求

数据库砖家

YashanDB事务隔离级别选择及其影响分析

数据库砖家

YashanDB数据备份与恢复的实用方法

数据库砖家

YashanDB数据存储策略的深度探索与实践

数据库砖家

【隐语SecretFlow隐私计算】如何使用 Kuscia API 运行一个 SecretFlow Serving

隐语SecretFlow

隐私计算

面试被挂的第3次,面试官说:你懂的LLM框架,只够骗骗自己

王中阳Go

面试 LLM

英国邮局与富士通 Horizon 系统合同可延至2028年,技术迁移挑战成焦点

qife122

数据完整性 IT合同

YashanDB容器化部署的最佳实践与技术要点

数据库砖家

品牌出海战略全景图:从市场洞察到全球化布局的完整路径

Wolink

出海 海外社媒营销 海外营销推广 品牌出海 海外红人营销

【FAQ】HarmonyOS SDK 闭源开放能力 — Account Kit

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

什么是社交媒体营销?为什么品牌要做社交媒体营销

Wolink

跨境电商 海外社媒营销 海外营销推广 海外红人营销 品牌推广

2012.3.19微博热报:布隆过滤与多路归并_语言 & 开发_郑柯_InfoQ精选文章