孫榮辛|大數據穿針引線進階必看——Google經典大數據知識

大數據技術的發展是一個非常典型的技術工程的發展過程 , 榮辛通過對于谷歌經典論文的盤點 , 希望可以幫助工程師們看到技術的探索、選擇過程,以及最終歷史告訴我們什么是正確的選擇 。
何為大數據 
“大數據”這個名字流行起來到現在,差不多已經有十年時間了 。在這十年里,不同的人都按照自己的需要給大數據編出了自己的解釋 。有些解釋很具體 , 來自于一線寫 Java 代碼的工程師,說用 Hadoop 處理數據就是大數據;有些解釋很高大上 , 來自于市場上靠發明大詞兒為生的演說家 , 說我們能采集和處理全量的數據就是大數據,如果只能采集到部分數據 , 或者處理的時候要對數據進行采樣,那就不是大數據 。
在筆者看來,其實“大數據”技術的核心理念是非常清晰的,基本上可以被三個核心技術理念概括 。

  • 服務器規模:能夠伸縮到一千臺服務器以上的分布式數據處理集群的技術 。
  • 服務器架構:這個上千個節點的集群,是采用廉價的 PC 架構搭建起來的 。
  • 編程模式:“把數據中心當作是一臺計算機”(Datacenter as a Computer) 。
觸發問題大數據技術傳統數據處理技術解決的問題服務器規模千臺服務器以上幾十臺服務器可行性服務器架構普通x86服務器,普通硬盤專用硬件,如大型機、小型機性價比編程模型Datacenter as a Computer使用方自己處理分布式和容錯問題復雜性大型集群讓處理海量數據變得“可能”;基于開放的 PC 架構,讓處理海量數據變得“便宜”;而優秀的封裝和抽象,則是讓處理海量數據變得“容易” 。這也是現在誰都能用上大數據技術的基礎 ??梢哉f,這三個核心技術理念,真正引爆了整個“大數據”技術,讓整個技術生態異常繁榮 。
筆者認為,Google 能成為散播大數據火種的人,是有著歷史的必然性的:作為一個搜索引擎,Google 在數據層面,面臨著比任何一個互聯網公司都更大的挑戰 。無論是 Amazon 這樣的電商公司,還是 Yahoo 這樣的門戶網站 , 都只需要存儲自己網站相關的數據 。而 Google,則是需要抓取所有網站的網頁數據并存下來 。而且光存下來還不夠,早在 1999 年,兩個創始人就發表了 PageRank 的論文,也就是說,Google 不只是簡單地根據網頁里面的關鍵字來排序搜索結果,而是要通過網頁之間的反向鏈接關系,進行很多輪的迭代計算,才能最終確認排序 。而不斷增長的搜索請求量,讓 Google 還需要有響應迅速的在線服務 。
三駕馬車和基礎設施 
面對存儲、計算和在線服務這三個需求,Google 就在 2003、2004 以及 2006 年,分別拋出了三篇重磅論文 。也就是我們常說的“大數據”的三駕馬車:

    推薦閱讀