畢竟受文章和理論之限,本文將摒棄絕大部分的細(xì)節(jié),只談方法/模式論,且注重用最通俗最直白的語言闡述相關(guān)問題。最后,有一點必須強調(diào)的是,全文行文是基于面試題的分析基礎(chǔ)之上的,具體實踐過程中,還是得具體情況具體分析,且場景也遠(yuǎn)比本文所述的任何一種場景復(fù)雜得多。
OK,若有任何問題,歡迎隨時不吝賜教。謝謝。
何謂海量數(shù)據(jù)處理?
所謂海量數(shù)據(jù)處理,其實很簡單,海量,海量,何謂海量,就是數(shù)據(jù)量太大,所以導(dǎo)致要么是無法在較短時間內(nèi)迅速解決,要么是數(shù)據(jù)太大,導(dǎo)致無法一次性裝入內(nèi)存。那解決辦法呢?針對時間,我們可以采用巧妙的算法搭配合適的數(shù)據(jù)結(jié)構(gòu),如Bloom filter/Hash/bit-map/堆/數(shù)據(jù)庫或倒排索引/trie/,針對空間,無非就一個辦法:大而化小:分而治之/hash映射,你不是說規(guī)模太大嘛,那簡單啊,就把規(guī)模大化為規(guī)模小的,各個擊破不就完了嘛。
至于所謂的單機及集群問題,通俗點來講,單機就是處理裝載數(shù)據(jù)的機器有限(只要考慮cpu,內(nèi)存,硬盤的數(shù)據(jù)交互),而集群,機器有多輛,適合分布式處理,并行計算(更多考慮節(jié)點和節(jié)點間的數(shù)據(jù)交互)。
再者,通過本blog內(nèi)的有關(guān)海量數(shù)據(jù)處理的文章:http://blog.csdn.net/v_july_v/article/category/1106578,我們已經(jīng)大致知道,處理海量數(shù)據(jù)問題,無非就是: