海量数据的问题思考

海量数据处理的问题

  1. 给定一个大小超过 100G 的文件, 其中存在 IP 地址, 找到其中出现次数最多的 IP 地址(hash文件切分)

    思路:首先,我们知道100G的文件一定不可能一次加载到内存里进行处理,所以我们考虑利用哈希切分的方法,将ip地址相同的放入同一个文件夹中。具体做法就是,我们通过哈希函数计算大文件中的每一个数据的哈希地址,将哈希地址相同的数据存放到同一个地方,所以这里的哈希地址也就是我们新的存放数据的地方(小文件)的编号,这就叫做哈希切分,哈希切分达到的最终的目的就是将相同规律(比如说相同的IP地址,相同的单词)的数据一定是存放在同一个文件中。这里我们需要注意的是按照ip地址进行哈希切分,ip地址相同的一定在同一个文件夹里(小文件),但是,在同一文件夹里的ip地址不一定相同。所以,我们还需要对小文件进行处理。将他们的IP作为Key,value作为每个IP出现的次数,最后利用排序算法对value进行排序,找到每个小文件中出现次数最多的IP。


  1. 给定100亿个整数, 找到其中只出现一次的整数(位图变形, 用两位来表示次数).

  1. 有两个文件, 分别有100亿个query(查询词, 字符串), 只有1G内存, 找到两个文件的交集(hash文件切分 + 布隆过滤器).

  1. 给上千个文件, 每个文件大小为1K - 100M, 设计算法找到某个词存在在哪些文件中(倒排索引).
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章