海量資料的問題思考

2021-08-21 02:48:19 字數 689 閱讀 3563

給定乙個大小超過 100g 的檔案, 其中存在 ip 位址, 找到其中出現次數最多的 ip 位址(hash檔案切分)

思路:首先,我們知道100g的檔案一定不可能一次載入到記憶體裡進行處理,所以我們考慮利用雜湊切分的方法,將ip位址相同的放入同乙個資料夾中。具體做法就是,我們通過雜湊函式計算大檔案中的每乙個資料的雜湊位址,將雜湊位址相同的資料存放到同乙個地方,所以這裡的雜湊位址也就是我們新的存放資料的地方(小檔案)的編號,這就叫做雜湊切分,雜湊切分達到的最終的目的就是將相同規律(比如說相同的ip位址,相同的單詞)的資料一定是存放在同乙個檔案中。這裡我們需要注意的是按照ip位址進行雜湊切分,ip位址相同的一定在同乙個資料夾裡(小檔案),但是,在同一資料夾裡的ip位址不一定相同。所以,我們還需要對小檔案進行處理。將他們的ip作為key,value作為每個ip出現的次數,最後利用排序演算法對value進行排序,找到每個小檔案中出現次數最多的ip。

給定100億個整數, 找到其中只出現一次的整數(位圖變形, 用兩位來表示次數).

有兩個檔案, 分別有100億個query(查詢詞, 字串), 只有1g記憶體, 找到兩個檔案的交集(hash檔案切分 + 布隆過濾器).

給上千個檔案, 每個檔案大小為1k - 100m, 設計演算法找到某個詞存在在哪些檔案中(倒排索引).

海量資料問題

1 檔案太大,100g,肯定不可能一次載入到記憶體進行處理,這裡就必須將檔案進行切割了,可是依據哪種方法進行切割呢?假設只是從前到後等份切割的話,將檔案切割n份 切割的份數依據所給的記憶體大小 第乙份中假設ip位址為a出現次數最多,第二份中b出現的次數最多,這樣比較出來,假設a比b大,那得出的結果就...

海量資料問題

在海量資料中查詢出重複出現的元素或者去除重複出現的元素也是常考的問題。針對此類問題,一般可以通過位圖法實現。例如,已知某個檔案內包含一些 號碼,每個號碼為8位數字,統計不同號碼的個數。本題最好的解決方法是通過使用位圖法來實現。8位整數可以表示的最大十進位制數值為99999999。如果每個數字對應於位...

海量資料的TopK問題

乙個基本的是思想是分治法,將1億個資料分成100份,每份100萬個資料,找出每份中最大的100個,最終可以在這100 100個資料中找出最大的100個。我們知道,快排一次的結果是分界點前面的資料比他小,分界點後的比他大,我們可以做如下的討論 如果分界點後面的資料個數大於k個,那麼可以在後面的資料中重...