軟件發展主要是兩件事:簡單性和模塊化,簡單是簡化情況以解決問題,模塊則是為了分工合作。大數據發展完美詮釋了這個過程。
大數據,是在網頁檢索中發展起來的,其中關鍵是 Google,它奠定了大數據技術的基礎。
網頁檢索,海量數據,面臨很多挑戰。
海量網頁存儲,但現有存儲系統,“貴”、“不易擴展”、“數據存儲還不可靠”(注:Raid5重建,慢,且重建過程中壞盤,則就無法恢復了)。
Google據此,推出GFS分布式文件系統,它有如下特點:

■ 獨立元數據節點。
■ 不要Raid,多機存多份(使用廉價服務器群,并認為故障是常態)。
■ 不刪除,不修改,只添加和覆蓋(一次寫,多次讀)。
海量網頁需要建立索引,但現有數據庫寫入性能低,檢索起來慢。
分析,大數據下的讀寫模型和傳統數據庫有差異,傳統數據庫模型,大量時間在硬盤尋址上,所以Google推出BigTable非關系型數據庫,它有如下特點:
■不要多表 。
■不要回滾 。
■不要格式校驗 。
■不要觸發器 。
■批量讀數據,減少磁頭尋址時間。
■數據容忍丟失,大量緩存,排好序一次寫。
■多費些硬盤,對關鍵值Hash,快速查找 。
網頁詞頻分析,需分布式計算,但編程復雜。

分析,計算過程中,大部分運算是矩陣運算,矩陣運算可分解為小矩陣乘積。據此,Google推出MapReduce計算框架,它簡化計算模型,只解決80%的場景問題,過程抽象如下:
■ Map過程:“數據分N份,每個數據獨立映射”,這部分可高度并發。
■ Reduce過程:數據集數據進行合并運算。
■ 分布式調度框架:調度原則為“移動計算比移動數據更便宜”。

檢索中,用戶輸入和結果之間,是先知經驗,有各種方法可定義經驗,Google的方法是“知識圖譜”,觀點是“數據足夠,通過常用的統計,足可模擬出大部分人的先知經驗”。
檢索中,多媒體理解的需求越來越多,Google提出的理念是:“數據比算法重要,如訓練數據合理且充分,簡單的模型也可無限逼近現實”,近年來,語音和智能識別的突破方向,也說明了這種趨勢。
大數據的發展歷史,給我們很多啟示:“簡單拿來主義是不夠的,更重要的是,要以問題出發,在行業理解的基礎上,模型充分簡單化,并在過程中,要有打破傳統思維的勇氣”。
