大數據開發過程中的5個基本步驟

大數據的開發過程,如圖1-1所示。

圖 1-1大數據開發通用步驟圖

上圖只是一個簡化後的步驟和流程,實際開發中,有的步驟可能不需要,有的還需要增加步驟,有的流程可能更復雜,因具體情況而定。

下面以Google搜索引擎爲例,來說明以上步驟。

對大數據以及人工智能概念都是模糊不清的,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大數據學習qq羣:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系 。從java和linux入手,其後逐步的深入到HADOOP-hive-oozie-web-flume-python-hbase-kafka-scala-SPARK等相關知識一一分享!

1. 大數據採集

Google的數據來源於互聯網上的網頁,它們由Google Spider(蜘蛛、爬蟲、機器人)來抓取,抓取的原理也很簡單,就是模擬我們人的行爲,來訪問各個網頁,然後保存網頁內容。

Google Spider是一個程序,運行在全球各地的Google服務器之中,Spider們非常勤奮,日夜不停地工作。

2008年Google數據表明,它們每天都會訪問大約200億個網頁,而在總量上,它們追蹤着300億個左右的獨立URL鏈接。

可以說,只要是互聯網上的網站,只要沒有在robots.txt文件禁止Spider訪問的話,其網頁基本上都會在很短的時間內,被抓取到Google的服務器上。

全球的網頁,這是典型的大數據。因此,Google Spider所做的就是典型的大數據採集工作。

2. 大數據預處理

Google Spider爬取的網頁,無論是從格式還是結構等,都不統一,爲了便於後續處理,需要先做一些處理,例如,在存儲之前,先轉碼,使用統一的格式對網頁進行編碼,這些工作就是預處理。

3. 大數據存儲

網頁經過預處理後,就可以存儲到Google的服務器上。

2008年,Google已經索引了全世界1萬億個網頁,到2014年,這個數字變成了30萬億個。

爲了減少開銷,節約空間,Google將多個網頁文件合併成一個大文件,文件大小通常在1GB以上。

這還是15年以前的數字,那時,主流臺式機硬盤也就是60GB左右,1GB的文件在當時可以說是大文件了。

爲了實現這些大文件高效、可靠、低成本存儲,Google發明了一種構建在普通商業機器之上的分佈式文件系統:Google File System,縮寫爲GFS,用來存儲文件(又稱之爲非結構化數據)。

網頁文件存儲下來後,就可以對這些網頁進行處理了,例如統計每個網頁出現的單詞以及次數,統計每個網頁的外鏈等等。

這些被統計的信息,就成爲了數據庫表中的一個屬性,每個網頁最終就會成爲數據庫表中的一條或若干條記錄。

由於Google存儲的網頁太多,30萬億個以上,因此,這個數據庫表也是超級龐大的,傳統的數據庫,像Oracle等,根本無法處理這麼大的數據,因此Google基於GFS,發明了一種存儲海量結構化數據(數據庫表)的分佈式系統Bigtable

上述兩個系統(GFS和Bigtable)並未開源,Google僅通過文章的形式,描述了它們的設計思想。

所幸的是,基於Google的這些設計思想,時至今日,已經出現了不少開源海量數據分佈式文件系統,如HDFS等,也出現了許多開源海量結構化數據的分佈式存儲系統,如HBase、Cassandra等,它們分別用於不同類型大數據的存儲。

總之,如果採集過來的大數據需要存儲,要先判斷數據類型,再確定存儲方案選型;

如果不需要存儲(如有的流數據不需要存儲,直接處理),則直接跳過此步驟,進行處理。

4. 大數據處理

網頁存儲後,就可以對存儲的數據進行處理了,對於搜索引擎來說,主要有3步:

1)單詞統計:統計網頁中每個單詞出現的次數;

2)倒排索引:統計每個單詞所在的網頁URL(Uniform Resource Locator統一資源定位符,俗稱網頁網址)以及次數;

3)計算網頁級別:根據特定的排序算法,如PageRank,來計算每個網頁的級別,越重要的網頁,級別越高,以此決定網頁在搜索返回結果中的排序位置。

例如,當用戶在搜索框輸入關鍵詞“足球”後,搜索引擎會查找倒排索引表,得到“足球”這個關鍵詞在哪些網頁(URL)中出現,然後,根據這些網頁的級別進行排序,將級別最高的網頁排在最前面,返回給用戶,這就是點擊“搜索”後,看到的最終結果。

大數據處理時,往往需要從存儲系統讀取數據,處理完畢後,其結果也往往需要輸出到存儲。因此,大數據處理階段和存儲系統的交互非常頻繁。

大數據處理和前面大數據預處理,在技術上是相通的,只是所處階段不同;

此處理環節是大數據開發階段的一個必需的環節!

5. 大數據可視化

大數據可視化是將數據以圖形的方式展現出來,與純粹的數字表示相比,圖形方式更爲直觀,更容易發現數據之間的規律。

例如,Google Analytics是一個網站流量分析工具,它統計每個用戶使用搜索引擎訪問網站的數據,然後得到每個網站的流量信息,包括網站每天的訪問次數,訪問量最多的頁面、用戶的平均停留時間、回訪率等,所有數據都以圖形的方式,直觀地顯示出來,如圖1-2所示

 

 圖1-2  Google網站訪問量分析圖

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