面試問(wèn)答題

問(wèn):

有1000億條記錄烈和,每條記錄由url,ip,時(shí)間組成,設(shè)計(jì)一個(gè)系統(tǒng)能夠快速查詢以下內(nèi)容
1.給定url和時(shí)間段(精確到分鐘)統(tǒng)計(jì)url的訪問(wèn)次數(shù)
2.給定ip和時(shí)間段(精確到分鐘)統(tǒng)計(jì)ip的訪問(wèn)次數(shù)

答:

首先切端,1000億條記錄全部放到內(nèi)存肯定不夠磅轻,那就是分成小文件了拐格,然后整合掉分;
公共的時(shí)間段俭缓,因?yàn)榫_到分鐘,我們把這每一分鐘建成一個(gè)小文件酥郭,每個(gè)小文件肯定會(huì)有許多重復(fù)的ip华坦,url;

現(xiàn)在統(tǒng)計(jì)每個(gè)小的文件中url的訪問(wèn)量和ip的訪問(wèn)次數(shù)不从,方法就是建立索引惜姐;
(建立索引的目的是為了減少查詢次數(shù),但是隨著索引級(jí)數(shù)增多也會(huì)造成花更多的時(shí)間在建立索引上)椿息;

建立url的索引载弄,假如是www.nowcoder.com/question,可以分別給www.nowcoder.com和question建立索引,那么來(lái)了一條url撵颊,先看一級(jí)索引是不是匹配,匹配再看二級(jí)索引惫叛,相同的話就是我們要的url目標(biāo)倡勇;

ip的索引也是一樣,ip分成4段建立索引嘉涌;
所以這里影響效率的就是在索引建立這塊妻熊,索引建立好那就是查詢的事了的,就會(huì)變得非陈刈睿快扔役。
假定給定了某個(gè)時(shí)間段,找出url的訪問(wèn)量警医,那么先找到給定的時(shí)間段亿胸,對(duì)應(yīng)著剛開(kāi)始分割的小的文件(每一個(gè)分鐘)中搜索,通過(guò)索引找到相同的url之后预皇,開(kāi)始統(tǒng)計(jì)侈玄,直到搜索完所有的給定時(shí)間段內(nèi)的所有的小的文件;

求ip的訪問(wèn)次數(shù)也是一樣吟温,按照給定的時(shí)間段序仙,找到對(duì)應(yīng)的小的文件,通過(guò)索引找到相同的ip后統(tǒng)計(jì)鲁豪,直到搜索完了給定時(shí)間段內(nèi)的所有的小的文件潘悼。

問(wèn):

海量數(shù)據(jù)處理 - 10億個(gè)數(shù)中找出最大的10000個(gè)數(shù)(top K問(wèn)題)

答:

先拿10000個(gè)數(shù)建堆律秃,然后一次添加剩余元素,如果大于堆頂?shù)臄?shù)(10000中最小的)治唤,將這個(gè)數(shù)替換堆頂棒动,并調(diào)整結(jié)構(gòu)使之仍然是一個(gè)最小堆,這樣肝劲,遍歷完后迁客,堆中的10000個(gè)數(shù)就是所需的最大的10000個(gè)。建堆時(shí)間復(fù)雜度是O(mlogm)辞槐,算法的時(shí)間復(fù)雜度為O(nmlogm)(n為10億掷漱,m為10000)。

優(yōu)化的方法:可以把所有10億個(gè)數(shù)據(jù)分組存放榄檬,比如分別放在1000個(gè)文件中卜范。這樣處理就可以分別在每個(gè)文件的10^6個(gè)數(shù)據(jù)中找出最大的10000個(gè)數(shù),合并到一起在再找出最終的結(jié)果鹿榜。

以上就是面試時(shí)簡(jiǎn)單提到的內(nèi)容海雪,下面整理一下這方面的問(wèn)題:
top K問(wèn)題

在大規(guī)模數(shù)據(jù)處理中,經(jīng)常會(huì)遇到的一類問(wèn)題:在海量數(shù)據(jù)中找出出現(xiàn)頻率最好的前k個(gè)數(shù)舱殿,或者從海量數(shù)據(jù)中找出最大的前k個(gè)數(shù)奥裸,這類問(wèn)題通常被稱為top K問(wèn)題。例如沪袭,在搜索引擎中湾宙,統(tǒng)計(jì)搜索最熱門的10個(gè)查詢?cè)~;在歌曲庫(kù)中統(tǒng)計(jì)下載最高的前10首歌等冈绊。

針對(duì)top K類問(wèn)題侠鳄,通常比較好的方案是分治+Trie樹(shù)/hash+小頂堆(就是上面提到的最小堆),即先將數(shù)據(jù)集按照Hash方法分解成多個(gè)小數(shù)據(jù)集死宣,然后使用Trie樹(shù)活著Hash統(tǒng)計(jì)每個(gè)小數(shù)據(jù)集中的query詞頻伟恶,之后用小頂堆求出每個(gè)數(shù)據(jù)集中出現(xiàn)頻率最高的前K個(gè)數(shù),最后在所有top K中求出最終的top K毅该。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末博秫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子眶掌,更是在濱河造成了極大的恐慌台盯,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畏线,死亡現(xiàn)場(chǎng)離奇詭異静盅,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門蒿叠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)明垢,“玉大人,你說(shuō)我怎么就攤上這事市咽∪” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵施绎,是天一觀的道長(zhǎng)溯革。 經(jīng)常有香客問(wèn)我,道長(zhǎng)谷醉,這世上最難降的妖魔是什么致稀? 我笑而不...
    開(kāi)封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮俱尼,結(jié)果婚禮上抖单,老公的妹妹穿的比我還像新娘。我一直安慰自己遇八,他們只是感情好矛绘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著刃永,像睡著了一般货矮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斯够,一...
    開(kāi)封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天囚玫,我揣著相機(jī)與錄音,去河邊找鬼雳刺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛裸违,可吹牛的內(nèi)容都是我干的掖桦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼供汛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼枪汪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起怔昨,我...
    開(kāi)封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤雀久,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后趁舀,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體赖捌,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年矮烹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了越庇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罩锐。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卤唉,靈堂內(nèi)的尸體忽然破棺而出涩惑,到底是詐尸還是另有隱情,我是刑警寧澤桑驱,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布竭恬,位于F島的核電站,受9級(jí)特大地震影響熬的,放射性物質(zhì)發(fā)生泄漏痊硕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一悦析、第九天 我趴在偏房一處隱蔽的房頂上張望寿桨。 院中可真熱鬧,春花似錦强戴、人聲如沸亭螟。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)预烙。三九已至,卻和暖如春道媚,著一層夾襖步出監(jiān)牢的瞬間扁掸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工最域, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谴分,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓镀脂,卻偏偏與公主長(zhǎng)得像牺蹄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子薄翅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 教你如何迅速秒殺掉:99%的海量數(shù)據(jù)處理面試題 本文經(jīng)過(guò)大量細(xì)致的優(yōu)化后沙兰,收錄于我的新書《編程之法》第六章中,新書...
    Helen_Cat閱讀 7,415評(píng)論 1 39
  • 1. 簡(jiǎn)單描述如何安裝配置一個(gè)apache開(kāi)源版hadoop翘魄,只描述即可鼎天,無(wú)需列出完整步驟,能列出步驟更好暑竟。 1)...
    山的那邊是什么_閱讀 1,089評(píng)論 0 7
  • 這么多年從來(lái)沒(méi)有給過(guò)去的一年做一個(gè)總結(jié),如果說(shuō)2017最痛苦的一個(gè)月是4月份參加完家排課回來(lái)后绩鸣,我內(nèi)心的那種痛恨怀大,...
    王翠英閱讀 88評(píng)論 0 0
  • 時(shí)光像一條河流化借, 在各自世界里留下了不滅的印記, 在外人眼里卻像一條沒(méi)有褶皺的奔流捡多。 不管走過(guò)了多遠(yuǎn)的時(shí)光蓖康, 長(zhǎng)大...
    圍爐野話閱讀 295評(píng)論 6 1
  • 姓名: 劉威 公司:瑞亨電子 365期感謝二組學(xué)員 【日精進(jìn)打卡第44天】 【知~學(xué)習(xí)】 ...
    劉威356期學(xué)員閱讀 57評(píng)論 0 0