谷歌更快處理的方法:使用基于流的處理,而不是Map/Reduce

由于缺乏替代品當(dāng)時(shí),許多大數(shù)據(jù)系統(tǒng)今天所使用的Map/Reduce,對(duì)于該領(lǐng)域來說,并不是一個(gè)最好的選擇。一個(gè)很好的例子是使用Map/Reduce來維護(hù)一個(gè)全球性的搜索索引。使用Map/Reduce,我們基本上會(huì)重建索引,在那里實(shí)際上會(huì)有更合理的更新。

谷歌把索引處理的很大一部分從Map/Reduce降低到一個(gè)更加實(shí)時(shí)的處理模式上,正如最近的文章中指出:

谷歌是如何設(shè)法讓其搜索結(jié)果越來越實(shí)時(shí)?通過一個(gè)被稱為Percolator的增量處理引擎來取代GMR支持。通過只涉及新建、修改或刪除文件和使用二級(jí)指標(biāo)來有效地分類和查詢所得到的輸出,谷歌能夠顯著降低需要的時(shí)間。正如文章中所寫的:“[C]onverting索引系統(tǒng)讓一個(gè)增量系統(tǒng)處理文件的延遲平均下降了100倍。“這意味著Web上的新內(nèi)容被索引的速度可以比使用 MapReduce系統(tǒng)快100倍!

最后的注意事項(xiàng)

我們可以在一些工作進(jìn)入我們的Hadoop系統(tǒng)之前就進(jìn)行預(yù)處理,這樣使我們的Hadoop系統(tǒng)運(yùn)行得更快。我們也可以不在Hadoop Map/Reduce系統(tǒng)中批處理不適合的工作負(fù)載,而是像谷歌一樣,使用Stream Processing。

分享到

hanrui

相關(guān)推薦