【数据结构】一些海量数据处理问题
2018-03-07 21:53
363 查看
1. 给定一个大小超过 100G 的文件, 其中存在 IP 地址, 找到其中出现次数最多的 IP 地址(hash文件切分)
把这个100个G的文件分成1000份左右的文件,然后把这个100个G里面相同的IP地址, 使用相同的散列
函数将所有IP地址转换为一个整数key,再利用
index=key%1000就可将相同IP分到同一个文件
2. 给定100亿个整数, 找到其中只出现一次的整数(位图变形, 用两位来表示次数).
这100亿个数据有三种状态:不存在、 存在一次、存在多次。
故此,我们需要对传统位图进行扩展,用两位来表示一个整数的状态:00表示不存在、01表示存在一次, 10表示存在多次,11表示无效状态。
3. 有两个文件, 分别有100亿个query(查询词, 字符串), 只有1G内存, 找到两个文件的交集(hash文件切分 + 布隆过滤器).
在32位操作系统下,一个整数有32个字节,所以100亿整数 = 100 * 4字节 = 40G,所以不能一次性查找
精确的算法:哈希文件切分
将两个文件中的query hash到N个小文件中,并标明query的来源,在各个小文件中找到重合的query
将找到的重合query汇总,得到交集
近似算法:使用布隆过滤器
把一个文件的内容存入布隆过滤器,然后使用另一个布隆过滤器中查找是否存在,找到交集的元素,因为
可能出现哈希冲突,所以这是一种近似的算法, 不是百分之百精确
4. 给上千个文件, 每个文件大小为1K - 100M, 设计算法找到某个词存在在哪些文件中(倒排索引).
首先,把这个词存入一个单项链表中,头结点存储这个词,链表后面存储的都是文件名,然后依次遍历每个
文件,取出文件中的每一个单词并与这个词对比,若找到,就将此文件的文件名添加到后面的链表中,遍历
完所有文件,然后就得到了这个词存在在哪些文件中
把这个100个G的文件分成1000份左右的文件,然后把这个100个G里面相同的IP地址, 使用相同的散列
函数将所有IP地址转换为一个整数key,再利用
index=key%1000就可将相同IP分到同一个文件
2. 给定100亿个整数, 找到其中只出现一次的整数(位图变形, 用两位来表示次数).
这100亿个数据有三种状态:不存在、 存在一次、存在多次。
故此,我们需要对传统位图进行扩展,用两位来表示一个整数的状态:00表示不存在、01表示存在一次, 10表示存在多次,11表示无效状态。
3. 有两个文件, 分别有100亿个query(查询词, 字符串), 只有1G内存, 找到两个文件的交集(hash文件切分 + 布隆过滤器).
在32位操作系统下,一个整数有32个字节,所以100亿整数 = 100 * 4字节 = 40G,所以不能一次性查找
精确的算法:哈希文件切分
将两个文件中的query hash到N个小文件中,并标明query的来源,在各个小文件中找到重合的query
将找到的重合query汇总,得到交集
近似算法:使用布隆过滤器
把一个文件的内容存入布隆过滤器,然后使用另一个布隆过滤器中查找是否存在,找到交集的元素,因为
可能出现哈希冲突,所以这是一种近似的算法, 不是百分之百精确
4. 给上千个文件, 每个文件大小为1K - 100M, 设计算法找到某个词存在在哪些文件中(倒排索引).
首先,把这个词存入一个单项链表中,头结点存储这个词,链表后面存储的都是文件名,然后依次遍历每个
文件,取出文件中的每一个单词并与这个词对比,若找到,就将此文件的文件名添加到后面的链表中,遍历
完所有文件,然后就得到了这个词存在在哪些文件中
相关文章推荐
- 海量数据处理的一些问题(转自论坛)
- 海量数据处理问题
- 如何配置java环境以及常见的一些问题处理
- C++随记(六)---函数处理数组的一些问题
- 海量数据处理问题 解决方法总结
- 关于海量数据处理问题
- set 和hash_set和海量数据的处理问题
- 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)
- 网站无法连接sql sever数据库的一些问题处理,解决自己定义的数据库用户名,无法关联数据库和无法登陆数据库
- 处理语法高亮的一些问题
- 海量数据处理问题汇总及方法总结
- 数据结构—处理对列的上溢和下益问题
- 从其他机子上复制过来的一些代码编译时出错的问题处理
- Java异常处理、异常处理使用的一些注意点(例如,基类和子类捕获的顺序问题)
- 一些手机图片压缩处理后会出现旋转问题(三星)的解决方法
- 海量数据处理问题
- 位图法;海量数据处理之位图技巧;位图技巧;海量数据;编程珠玑第二章问题A;40亿整数;腾讯面试题
- 解决json-lib的一些序列化循环处理问题
- 转:mysql处理海量数据时的一些优化查询速度方法
- mysql处理海量数据时的一些优化查询速度方法