海量数据问题
来源:互联网 发布:淘宝规则名词解释 编辑:程序博客网 时间:2024/06/01 18:37
问题:给一个超过100G的log file, log中存着IP地址, 设计算法找到出现次数最多的K个IP地址。
1、将100G的文件进行切分,分为100个小文件。利用字符串转整数的函数(如 BKDRHash)将IP地址转换为整数key,再利用index=key%100就可将相同IP分到同一个文件。
2、依次将这100个文件读入内存,统计ip的次数。降序排列,前K个即为该文件中出现次数最多的ip.
3、将第一个文件中出现次数的最多的前K个ip建小堆,然后读入第二个文件,将其出现次数最多的前K个ip的出现次数与堆中数据进行对比,如果有大于堆中的ip出现次数,则更新小堆,替换原堆中堆顶元素。再读入第三个文件,以此类推……
问题:给两个文件,分别有100亿个URL,我们只有1G内存,找到两个文件交集。分别给出精确算法和近似算法。
精确算法:哈希切分
1、将每个文件切分为1000份,利用字符串转整数的函数(BKDRHash)将query转换为整数key,再利用index=key%1000就可将相同query分到同一个文件。
2、依次将编号相同的两个小文件加载到内存中进行比较。比如对于A0 && B0,我们可以遍历A0 ,将其中的url存储到hash_map当中。然后遍历B0,如果url在hash_map中,则说明此url在A和B中同时存在,保存到文件中即可。
近似算法:布隆过滤器
1、利用不同的字符串转整数的函数将query转换为整数key,再利用位图映射多个位实现。在判断时,必须每个位都有效。但是每一位都重叠映射,可以准确判断不存在的情况,判断存在时有误判。
阅读全文
0 0
- 海量数据问题处理
- 海量数据问题总结
- 海量数据问题全集
- 海量数据问题总结
- 海量数据问题
- 海量数据问题
- 海量数据排序问题
- 海量数据排序问题
- 海量数据问题
- 常见海量数据问题
- 海量数据问题处理
- 海量数据问题
- 海量数据的处理问题
- 海量数据top K问题
- 海量数据的topK问题
- 海量数据分析问题总结
- 海量数据分析问题总结
- 海量数据分析问题总结
- JZOJ1417. 数学题(2017.8总结)
- Pots (bfs)
- 云服务器挂载硬盘(此处以腾讯云服务器为例)
- 剑指offer-17:合并两个排序的链表
- 网络互连设备
- 海量数据问题
- 放在head里的常用内容 更新中.....
- SpringBoot的坑-03
- 解读什么是ERP企业管理软件?
- ThinkPHP 框架中获取配置文件的数组
- idea如何生成实体类
- invaild use of group function问题解决
- MSSQL数据库连接相关信息的sql
- bzoj2756 [SCOI2012]奇怪的游戏