海量數據的問題思考

海量數據處理的問題

  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, 設計算法找到某個詞存在在哪些文件中(倒排索引).
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章