大資料開發過程中的5個學習通用步驟
大資料的開發過程,如圖1-1所示。
圖 1-1大資料開發通用步驟圖
上圖只是一個簡化後的步驟和流程,實際開發中,有的步驟可能不需要,有的還需要增加步驟,有的流程可能更復雜,因具體情況而定。
下面以Google搜尋引擎為例,來說明以上步驟。
如果你想要學好大資料最好加入一個好的學習環境,可以來這個Q群529867072 這樣大家學習的話就比較方便,還能夠共同交流和分享資料
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等,它們分別用於不同型別大資料的儲存。
總之,如果採集過來的大資料需要儲存,要先判斷資料型別,再確定儲存方案選型;
如果不需要儲存(如有的流資料不需要儲存,直接處理),則直接跳過此步驟,進行處理。
在這裡還是要推薦下我自己建的大資料學習交流群:529867072,群裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料軟體開發相關的),包括我自己整理的一份最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴加入。4. 大資料處理
網頁儲存後,就可以對儲存的資料進行處理了,對於搜尋引擎來說,主要有3步:
1)單詞統計:統計網頁中每個單詞出現的次數;
2)倒排索引:統計每個單詞所在的網頁URL(Uniform Resource Locator統一資源定位符,俗稱網頁網址)以及次數;
3)計算網頁級別:根據特定的排序演算法,如PageRank,來計算每個網頁的級別,越重要的網頁,級別越高,以此決定網頁在搜尋返回結果中的排序位置。
例如,當使用者在搜尋框輸入關鍵詞“足球”後,搜尋引擎會查詢倒排索引表,得到“足球”這個關鍵詞在哪些網頁(URL)中出現,然後,根據這些網頁的級別進行排序,將級別最高的網頁排在最前面,返回給使用者,這就是點選“搜尋”後,看到的最終結果。
大資料處理時,往往需要從儲存系統讀取資料,處理完畢後,其結果也往往需要輸出到儲存。因此,大資料處理階段和儲存系統的互動非常頻繁。
5. 大資料視覺化
大資料視覺化是將資料以圖形的方式展現出來,與純粹的數字表示相比,圖形方式更為直觀,更容易發現資料之間的規律。
例如,Google Analytics是一個網站流量分析工具,它統計每個使用者使用搜尋引擎訪問網站的資料,然後得到每個網站的流量資訊,包括網站每天的訪問次數,訪問量最多的頁面、使用者的平均停留時間、回訪率等,所有資料都以圖形的方式,直觀地顯示出來,如圖1-2所示
圖1-2 Google網站訪問量分析圖
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917001/viewspace-2643274/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料開發過程中的5個通用步驟大資料
- 需求開發過程步驟簡述
- 零基礎學大資料開發,主要分為哪四個步驟?大資料
- 學習大資料必須瞭解的大資料開發課程大綱大資料
- JS開發步驟學習筆記JS筆記
- 智慧資料視覺化的5個步驟視覺化
- 【經驗】學習android開發的步驟Android
- OGG實施操作步驟(包括操作過程中的所有步驟)
- 4個步驟帶你搞定大資料,Linux到大資料學習路線資料(絕對必看)大資料Linux
- 大資料開發過程中Kafka日誌結構解析大資料Kafka
- 麻將遊戲開發全過程步驟瞭解遊戲開發
- 零基礎html5網站開發學習步驟方法HTML網站
- app開發的幾個步驟APP
- 使用Pandas進行資料清理過程的簡單步驟 - sahilfruitwalaUI
- 大資料學習筆記之Hadoop安裝步驟詳解大資料筆記Hadoop
- 小白如何學習大資料開發,大資料學習路線是怎樣的?大資料
- 開原始碼評審的十個通用步驟 | Linux 中國原始碼Linux
- 修改歸檔模式的通用步驟(非RAC 資料庫)模式資料庫
- 學習SAP的步驟
- 學習java的步驟Java
- Swift iOS :我的這5個月的學習過程SwiftiOS
- 遊戲開發雜記(三) 開發及學習過程中的體會遊戲開發
- 新版PFMEA中的過程步驟應該如何理解?
- 我的Java轉型大資料的學習過程和經歷Java大資料
- 我的大資料學習歷程(1)大資料
- java開發中JDBC連線資料庫程式碼和步驟JavaJDBC資料庫
- java中UDP接收資料的步驟JavaUDP
- Hadoop大資料開發框架學習Hadoop大資料框架
- 大資料開發技術學習方向大資料
- WCF開發入門的六個步驟
- 保證軟體開發過程遵循ISO 26262標準的十個進階步驟
- mvc框架的學習步驟MVC框架
- Java學習過程中實戰開發經驗重要嗎?Java
- 深度學習學習7步驟深度學習
- 一個Flutter中臺元件的開發過程Flutter元件
- 幽默:“通過128個簡單的步驟學習Kubernetes!” - iamdevloperdev
- 幽默:“透過128個簡單的步驟學習Kubernetes!” - iamdevloperdev
- 學會Java開發才能學習大資料嗎?Java大資料