3.大數據來源

1. 大數據到底是個啥
只有在那崎嶇的小路上不畏艱險奮勇攀登的人,纔有希望達到光輝的頂點。
——馬克思
在計算機和互聯網技術高度發達的今天,我們所有人每天都會在互聯網上產生大量的數據,例如出去旅遊,用蘋果手機拍照,照片備份到蘋果 iCloud 裏面會留下圖片數據,在京東購買商品時會產生商品交易數據,使用微信進行即時通信會產生通信數據,使用網約車軟件打車會產生出行數據 ……

如此可見每天互聯網上產生的數據是有多龐大,數據可謂是無處不在。根據 IBM 調研的說法,人類每天生成的數據涵蓋我們發送的文本、上傳的照片、各類傳感器數據等所有信息,相當於從地球到月球的距離。因特爾公司首席執行官 Brian Krzanich 也曾表示,到 2020 年互聯網用戶每天將產生 1.5GB 的數據。

那麼大數據是不是就是指的數據量巨大呢?大數據到底是個啥?
百度百科裏是這麼定義大數據的:

大數據(big data)是指無法在一定時間範圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。
在維克托・邁爾 - 舍恩伯格及肯尼斯・庫克耶編寫的《大數據時代》 [2] 中表示,大數據指不用隨機分析法(抽樣調查)這樣捷徑,而採用所有數據進行分析處理。

1980 年,美國著名未來學家阿爾文・托夫勒在《第三次浪潮》一書中將大數據認爲是 “第三次浪潮的華彩樂章”,這是第一次提及 “大數據”。

在 2001 年,高德納分析員道格・萊尼在一份與其 2001 年的研究相關的演講中指出,數據增長有三個方向的挑戰和機遇:量(Volume),即數據多少;速(Velocity),即資料輸入、輸出的速度;類(Variety),即多樣性。

在萊尼的理論基礎上,IBM 提出大數據的 4V 特徵,得到了業界的廣泛認可。大數據 4V 特徵:volume(容量)、variety(種類)、velocity(速度)、value(價值)。

第一,大數據意味着超規模(Volume)。 大數據的規模從一般意義上講具有大規模、海量的含義,但是沒有絕對的量綱標準,而是和領域及其問題相關。

超規模是指超出了原有領域和問題的大規模。比如企業大數據,與之前不同的一個地方在於,此時的數據規模常常超越了企業本身傳統的內部數據邊界,而是延伸到了企業外部,成爲一種社會化的企業數據。每個人作爲終端使用者,既是數據的使用者,又是數據的創造者。

第二,大數據意味着多樣性(Variety)。 富媒體(Rich Media)大大擴展了人們的數字化生活體驗,全球數據和數字流量中 80% 以上 都是文本、視頻、語音、圖像,而不是過去以二維的、規範化的、非常簡單數據形式爲主的結構化數據。多樣性成爲大數據的顯著特徵。

第三,我們處在數據的海洋之中,但與我們企業或個人相關的數據相對說來是很少的,所以是低價值密度的(Value)。 即,數據量的分母太大,對企業或個人決策有價值的信息佔總量的比例就很小。

所以這裏有一個重要的含義,即如何從低價值密度的數據海洋中挖掘出有用信息,成爲企業數據分析的關鍵。

第四,大數據的實時性強(Velocity)。 信息就像開着的水龍頭一樣,源源不斷地出來。人們打開手機看新聞,支付賬單,都需要得到及時響應,而不是等到晚上再看新聞,要排個隊才能支付賬單。

數據是連續的,實時的,流湧的。這種流數據是時時刻刻(Real-Time)的,構成了大數據之 “大” 和無時不在。

莎士比亞說過:一千個人心中,有一千個哈姆雷特。每個對大數據理解的角度不盡相同。作爲一名互聯大數據技術人員,我對大數據的理解是這樣的。

3.1 大數據必須的是體量巨大的數據,而不是單個的我們生活中感知的 “大文件”。偶爾會聽到有人會將某一部高清的 4K 電影,稱之爲大數據。要知道對應我們普通的電腦來說一部幾十 G 數據量已經很大了,但是對於整個社會每天產生的 PB、EB、ZB 來說,真的是冰山一角。

那麼什麼樣體量的數據,能稱之爲大數據呢,以我所在的互聯網生活服務超級平臺舉例,用戶每天在 App 上瀏覽、點擊、購買、平臺行爲產生的數據量在幾十 PB 級別。

關於大數據規模門檻我給出一個簡單的判斷標準:每天產生數據低於 TB 級別的數據都不能稱之爲大數據。

3.2 大數據指的是有價值的數據。一些不正規的互聯網媒體爲了騙取互聯網廣告主的廣告推廣費用,會自己購買服務器,部署刷量程序。這些機器上的程序日夜不停地點擊媒體上廣告主投放的廣告,在點擊過程中會產生大量的曝光數據。數據量也能達到驚人的 PB 級別,但是這些數據背後對應的是一個個沒有生命的 “程序”。

這些 “程序” 除了點擊廣告之外,也不會產生有價值的行爲。所以這些數據是沒有價值的,也就不能稱之爲大數據。

關於大數據價值判斷標準:大數據背後需要對應一個個鮮活的個體,這些個體必須是能產生其他社會價值的。個體的標準不僅限於人,但多數情況下等於人。

3.3 大數據具有嚴格的時效性。 儘管比較久遠的也能反映數據背後個體的歷史行爲。但數據和個體對應關係會時刻發生變化。歷史行爲到當前是否能來準確描述個體的行爲我們是無從判斷的。

例如:一名大學生在上學的時候主要經濟來源是父母,他的經濟購買能力是比較有限的。幾年之後參加工作,自己有了穩定的收入以後,購買能力就會大大增強,此時再根據他歷史數據,去給他推送商品時候,這個人成功購買的概率就會很低。

所以說大數據隨時間的推移,時效性下降之後,數據價值極具下降。關於大數據時效性判斷標準:大數據從數據產生開始,數據價值在幾個月的時間裏會持續下跌,直到沒有任何價值。

這一節我們重點討論了大數據的定義,通過引用了百度百科、托夫勒、萊尼等多方觀點闡述,並結合我個人的理解總結了大數據的特點。

2.我們是如何走入大數據時代的

散步促進我的思想。我的身體必須不斷運動,腦筋纔會開動起來。
—— 盧梭
上一小節我們一起學習了大數據的定義和特點,這一小節我先帶着大家一起穿越到人類文明發展的起源,再順着歷史發展的脈絡,回答這樣一個問題:我們是如何走入大數據時代的。

翻開人類光輝璀璨的歷史,科學進步的發展,推動了社會進步,也深刻改變了人們生活的狀態。

石器時代:人類使用石器捕殺獵物,分割食物,建立最初的文明。從猿人經過漫長的歷史、逐步進化爲現代人。

青銅時代:人類利用金屬的第一個時代。各地區的青銅時代開始時期不一。希臘、埃及始於公元前 3000 年以前,中國始於公元前 1800 年。青銅是銅和錫的合金。

鐵器時代:約始於公元前 1400 年人類開始鍛造鐵器製造工具,促進了社會生產力的發展。

蒸汽時代: 起於 19 世紀初,止於 19 世紀 70 年代的第二次工業革命。蒸汽機的發明和應用,將人類帶入了蒸汽時代。

電氣時代;始於十九世紀六七十年代,發電機電動機的發明使用,以及電燈電車電影放映機的相繼問世標誌人類社會進入電氣時代。

信息時代:當進入 20 世紀 50 年代末,計算機的出現和逐步普及,把信息對整個社會的影響逐步提高到一種絕對重要的地位。信息量、信息傳播的速度,信息處理的速度以及應用信息的程度等都以幾何級數的方式在增長。

大數據和人工智能時代:隨着通信技術的發展,人類突破了依賴物理實體的方式傳播信息,使用手機打電話、收發短信、瀏覽微博、視頻聊天、刷短視頻。包涵大量人類活動的數據被記錄了下來。這些數據散落在我們的手機、電腦、通信公司的服務器裏面。數據總量急劇膨脹、呈現爆炸式增長。

在最很長的一段時間裏面,少量數據的存儲和計算可以在一臺普通計算機裏面完成,然而人們對於存儲和計算海量數據感到非常的無力。當數據規模達到一定的量級以後,一臺普通的計算機性能無法滿足數據的存儲、計算需求,這時候有兩種方式可以擴容計算機的處理能力:垂直擴容和水平擴容。

垂直擴容就是把普通的計算機升級成 CPU 核數更多、磁盤容量更大、讀寫速度更快的計算機。受限於有限的硬件製造水平,高性能計算機能配置的最大 CPU 核數、最大的磁盤讀寫速度、最大的磁盤空間大小都有着物理極限。製造一臺高性能計算機的成本往往比製造多臺具有相同 CPU 核數、相同存儲磁盤空間的廉價計算機要高出很多。

另一方面,水平擴容需要軟件層面上支持數據的分割、計算結果的彙總,這一技術還處在空白階段。這樣的尷尬局面,持續了很多年,直到 2003 年,Google 通過發表三篇論文的方式公佈 3 項革命性技術:GFS、MapReduce 和 BigTable,即所謂的 Google 三駕馬車。

2003 年 10 月 19—22 日,Google 在美國紐約召開的第 19 屆 ACM 操作系統原理研討會(Symposium on Operating Systems Principles,SOSP)上,發表了論文《Google 文件系統》,系統地介紹了 Google 面向大規模數據密集型應用的、可伸縮的分佈式文件系統 ——GFS。

2004 年 12 月 5 日,Google 在美國舊金山召開的第 6 屆操作系統設計與實現研討會(Operating Systems Design and Implementation,OSDI)上,發表了論文《MapReduce:超大集羣的簡單數據處理》,向全世界介紹了 MapReduce 系統的編程模式、實現、技巧、性能和經驗。

2006 年 11 月 6—8 日,Google 在美國西雅圖召開的第 7 屆操作系統設計與實現研討會上,發表了論文《BigTable:結構化數據的分佈式存儲系統》,分析了設計用於處理海量數據的分佈式結構化數據存儲系統 BigTable 的工作原理。

聊起西方文明,我們通常言必稱希臘,古希臘有三大哲學家:蘇格拉底、柏拉圖和亞里士多德。聊起東方文明,我們言必稱中國。聊起大數據我們言必稱 Google。

就像古希臘的哲學家照亮了西方文明一般,Google 的 “三駕馬車” 開啓了大數據時代,併爲我們指明瞭大數據的發展方向。GFS、MapReduce、BigTable 分別解決了計算機水平擴容過程中數據存儲、計算、結果查詢三個核心問題。有了可行的理論方案,從此人們真正開始考慮通過大量廉價計算機串在一起組成一個計算機集羣,使用集羣去處理大規模數據問題。

每個劃時代技術的更迭,都會伴隨着時代巨擘的誕生。

畢業於美國斯坦福大學的 Doug Cutting 在 1997 底開始使用 Java 開發 Lucene 開源函數庫。

之後,Cutting 再接再厲,在 Lucene 的基礎上將開源的思想繼續深化。

2004 年,Cutting 和同爲程序員出身的 Mike Cafarella 決定開發一款可以代替當時的主流搜索產品的開源搜索引擎,這個項目被命名爲 Nutch。在此之前,Cutting 所在的公司 Architext(其主要產品爲 Excite 搜索引擎)因沒有頂住互聯網經濟泡沫的衝擊而破產,那時的 Cutting 正處在 Freelancer 的生涯 中,所以他希望自己的項目能通過一種低開銷的方式來構建網頁中的大量算法。

幸運的是,Google 這時正好發佈了一項研究報告,報告中介紹了兩款 Google 爲支持自家的搜索引擎而開發的軟件平臺。

這兩個平臺一個是 GFS(Google File System),用於存儲不同設備所產生的海量數據;另一個是 MapReduce,它運行在 GFS 之上,負責分佈式大規模數據。基於這兩個平臺,Cutting 最引人矚目的作品 ——Hadoop 誕生了。

最開始,Cutting 開發 Hadoop 主要目的是服務於搜索引擎和網站創建的服務。爲了能找到更強大的資源完善 Hadoop 的性能,他決定找一家有實力的公司加入。於 2006 年正式加入 Yahoo,在 Yahoo Cutting 帶領一直上百人的隊伍開發 Hadoop 項目。

到 2008 年 1 月,HADOOP 成爲 Apache 頂級項目 (同年,cloudera 公司成立),迎來了它的快速發展期。Cutting 成爲 Apache 開源基金會主席。

隨着 Hadoop 的不斷髮展,越來越多的傳統行業的公司想使用 Hadoop 來處理他們的數據問題。爲了讓 Hadoop 服務更多的行業,Cutting 跳槽到 Cloudera ,成爲了這家專門做 Hadoop 商業技術支持公司的首席架構師。

Hadoop 項目的開源特性,讓項目從起步階段就進入了良性發展的快車道。大量 Top 公司使用 Hadoop 項目用於生產環境,在使用過程中不斷完善 Hadoop 項目,並將這些技術貢獻到 Hadoop 開源社區當中。

MapReduce 計算模型,對於開發人員來說有着較高的編寫門檻,爲了讓更多讓 SQL 技能良好,但 Java 技能較弱的分析師可以查詢海量數據,Facebook 開發了 Hive 這一個 SQL to MapReduce 語言翻譯器。

2008 年 Facebook 將 Hive 項目貢獻給了 Apache 開源社區。Hive 的讓 Hadoop 的使用門檻大幅度降低。

2009 年 UCBerkeley 的 AMP 實驗室的研究人員開始研發新的計算模型以改進 MapReduce 的性能。

2012 年 10 月 15 日 Spark 0.6.0 發佈,相比 MapReduce 實現更大幅度的性能改進。 Spark 更多的採用內存取代磁盤存儲數據計算過程中間結果。得益於優異的計算性能,Spark 慢慢取代了 MapReduce 成爲 Hadoop 項目中更流行的計算引擎。

在大數據使用場景中,除了會有對歷史數據統計的場景外,還有一些場景需要實時統計數據結果。這兩種場景分別需要使用批處理計算模型、流式計算模型。

在 Hadoop 項目之上,Spark 佔據了批處理計算模型的主導地位,而流式計算模型呈現遍地開花的態勢:Flink、Spark streaming 、Storm 多個項目競相發展,爭奪流式計算模型的主導地位。

除了上面講到的計算引擎,衆多的開源項目圍繞 Hadoop 項目形成了一個完整的大數據生態系統。

3.Hadoop和大數據是什麼關係

讀一本好書,就是和許多高尚的人談話。
——歌德

上一個小節,我們一起學習了大數據波瀾壯闊的發展歷史。可能會有些困惑,爲什麼大數據的發展歷史過程中會有大量篇幅講 Hadoop 的發展過程呢?Hadoop 和大數據究竟是什麼樣的關係?

區別於傳統數據,大數據具有數據規模龐大、數據多樣性、數據價值巨大、實時性高等特點,但歸根到底大數據本質上還是靜態的信息。

這些靜態的信息,就像一座未開墾的金礦,需要人們運用各種方式去挖掘、過濾掉雜質,留下有價值的部分。這些挖掘活動包含一系列的流程和複雜的過程。

數據散落在各個角落(錄音設備、錄像設備、手機、電腦、通信公司基站服務器、互聯網公司服務器),數據的形態既包含像短信、通訊錄、通話記錄等結構化的數據,也包含照片、視頻、錄音等非結構化數據。

數據需要通過一套通用的蒐集流程,以便結構化、非結構化的數據都能被保存下來。

除了人們活動過程中自然產生數據以外,很多時候我們會通過在 App 中植入數據埋點的方式主動收集用戶行爲日誌。

每次用戶使用 App 的時候會出發這些埋點,App 會向後端服務器上報一次包含用戶行爲的日誌。用戶行爲日誌的量非常大,往往比人自然活動產生的數據量要大的多。

大量的日誌被收集以後會按照多層次、多主題整理。日誌經過清洗、加工、轉化之後會被裝載到一個叫數據倉庫的系統裏面。

數據倉庫系統就像圖書館一樣,將數據分門別類,以便用戶使用的時候能快速的找到想要的數據。

數據在數據倉庫中被分類整理好之後,會對接可視化的 BI 系統,在這些 BI 系統裏面數據會以漏斗模型、曲線圖、餅狀圖等可視化的方式展現出來。

另一方面,經過了數據倉庫的初級數據加工之後,數據還可以經過深度的加工,以發掘出數據更深層次的價值。

數據深層次的加工過程,要用到大量的算法模型,最後會產生用於推薦系統的千人千面的標籤數據、用於流量變現的營銷數據、用於預測業務發展的分析樣本數據等等。企業決策者、分析師、運營人員會參考這些數據開展工作,數據驅動着公司發展的方方面面。

在上面的過程中,數據從蒐集、整理、初加工、深度加工、數據展現過程中包涵了大量的數據計算、數據算法、數據存儲的過程。要從大數據中挖掘出我們想要的信息,遠比我所預期的要難得多,需要整套的大數據技術做支撐。

在上一小節中我們講到了 Google 作爲大數據技術的開山鼻祖,通過發表三篇論文的方式引領了大數據技術狂潮,其實在論文發表之前 Google 公司早已經將論文上的技術方案實現,並應用到生產環境中。

論文發表之後除了 Hadoop 之外還有有許多人嘗試實現論文中的方案。由於 Doug Cutting 個人超強的技術實力,併爲 Hadoop 項目的持續發展做出巨大貢獻,最終 Hadoop 從衆多大數據技術方案中脫穎而出,成爲開源大數據技術的領導者。

在 Hadoop 之後的大數據開源技術解決方案都以 Hadoop 爲基礎,成爲了 Hadoop 生態體系中的一員。至此,本小節開頭的問題有了答案:Hadoop 是一整套開源大數據技術,Hadoop 以生態系統的形式,成爲工業級大數據技術的事實統一標準。

在互聯網行業大家常說的一句話:阿里巴巴不斷拓展人類商業的邊界,Google 則不斷拓展人類技術的邊界。

在 2009 年,Google 開始使用新的技術取代 GFS 和 MapReduce。

自 Hadoop 興起以來,Google 已經發布了三篇研究論文,Caffeine、Pregel、Dremel 後 Hadoop 時代的 新 “三駕馬車”。

Caffeine 主要爲 Google 網絡搜索引擎提供支持。在本質上 Caffeine 丟棄 MapReduce 轉而將索引放置在由 Google 開發的分佈式數據庫 BigTable 上。作爲 Google 繼 GFS 和 MapReduce 兩項創新後的又一項創新,其在設計用來針對海量數據處理情形下的管理結構型數據方面具有巨大的優勢。這種海量數據可以定義爲在雲計算平臺中數千臺普通服務器上 PB 級的數據。

Pregel 主要繪製大量網上信息之間關係的 “圖形數據庫”。

Dremel 是一種分析信息的方式,Dremel 可跨越數千臺服務器運行,允許 “查詢” 大量的數據,如 Web 文檔集合或數字圖書館,甚至是數以百萬計的垃圾信息的數據描述。這類似於使用結構化查詢語言分析傳統關係數據庫,這種方式在過去幾十年被廣泛使用在世界各地。

如今 Google 又決心用 Apache Beam 一統天下。儘管 Hadoop 取得的成功不容置疑,但構建 Hadoop 生態圈的公司和企業顯然慢了,全球很多技術都落後於 Google,而 Google 自身的技術也正在影響全球。

課程總結:這節課我們講到了大數據處理包涵一套非常複雜的流程,Hadoop 是開源大數據技術中的絕對王者,除了 Hadoop 這一開源大數據技術之外,像 Google 公司內部有很多更先進的大數據技術。Google 公司不定期地會將這些大數據技術加入到開源中來,不斷影響這全球大數據技術的發展。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章