原文:有10 億個 url,每個 url 大小小於 56B,要求去重,內存只給你4G

問題:有 億個 url,每個 url 大小小於 B,要求去重,內存只給你 G 思路: .首先將給定的url調用hash方法計算出對應的hash的value,在 億的url中相同url必然有着相同的value。 .將文件的hash table 放到第value n台機器上。 .value n是機器上hash table的值。 將文件分布在多個機器上,這樣要處理網路延時。假設有n台機器。 gt gt ...

2018-06-05 15:01 1 5966 推薦指數:

查看詳情

給定a、b兩個文件,各存放50url每個url各占用64字節,內存限制是4G,如何找出a、b文件共同的url

可以估計每個文件的大小為5G*64=300G,遠大於4G。所以不可能將其完全加載到內存中處理。考慮采取分而治之的方法。 遍歷文件a,對每個url求取hash(url)%1000,然后根據所得值將url分別存儲到1000個小文件(設為a0,a1,...a999)當中。這樣每個小文件的大小約為 ...

Thu Aug 16 08:25:00 CST 2012 0 4666
面試- 阿里-. 大數據題目- 給定a、b兩個文件,各存放50url每個url各占64字節,內存限制是4G,讓你找出a、b文件共同的url?

假如每個url大小10bytes,那么可以估計每個文件的大小為50G×64=320G,遠遠大於內存限制的4G,所以不可能將其完全加載到內存中處理,可以采用分治的思想來解決。   Step1:遍歷文件a,對每個url求取hash(url)%1000,然后根據所取得的值將url分別存儲到1000 ...

Wed Jul 12 19:32:00 CST 2017 0 10029
linux的虛擬內存4G,而每個進程都有自己獨立的4G內存空間,怎么理解?

問: linux的虛擬內存4G,而每個進程都有自己獨立的4G內存空間,怎么理解? 每個進程所擁有的4G獨立的虛擬內存空間是什么意思?linux系統的虛擬4G空間中,高位的1G是用於系統內核運行的,那么每個進程都有4G的話豈不都要運行內核了,這樣是不是很浪費很低效? 答: 4G ...

Thu Dec 22 22:14:00 CST 2016 0 3491
linux的虛擬內存4G,而每個進程都有自己獨立的4G內存空間,怎么理解?

問:每個進程所擁有的4G獨立的虛擬內存空間是什么意思?linux系統的虛擬4G空間中,高位的1G是用於系統內核運行的,那么每個進程都有4G的話豈不都要運行內核了,這樣是不是很浪費很低效? 答:Linux不大清楚,不過看你描述和Windows類似。32位的Windows,每個進程也有4G ...

Fri Jul 28 00:02:00 CST 2017 0 1204
10G個整數,亂序排列,要求找出中位數。內存限制為 2G寫出思路即可

題目:在一個文件中有 10G 個整數,亂序排列,要求找出中位數。內存限制為 2G寫出思路即可(內存限制為 2G的意思就是,可以使用2G的 空間來運行程序,而不考慮這台機器上的其他軟件的占用內存)。 分析: 既然要找中位數,很簡單就是排序的想法。那么基於字節的桶排序是一個可行 ...

Mon Mar 09 05:44:00 CST 2020 0 823
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM