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

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

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

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

最后的注意事項

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

分享到

hanrui

相關(guān)推薦