大資料開發過程中的5個通用步驟

xyz藍月發表於2019-05-03

大資料的開發過程 ,如圖1-1所示。

大資料開發過程中的5個通用步驟

圖 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所示


大資料開發過程中的5個通用步驟

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69903766/viewspace-2643198/,如需轉載,請註明出處,否則將追究法律責任。

相關文章