大資料開發過程中的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網站訪問量分析圖
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69903766/viewspace-2643198/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料開發過程中的5個學習通用步驟大資料
- 開原始碼評審的十個通用步驟 | Linux 中國原始碼Linux
- 智慧資料視覺化的5個步驟視覺化
- 麻將遊戲開發全過程步驟瞭解遊戲開發
- 大資料開發過程中Kafka日誌結構解析大資料Kafka
- 使用Pandas進行資料清理過程的簡單步驟 - sahilfruitwalaUI
- app開發的幾個步驟APP
- 新版PFMEA中的過程步驟應該如何理解?
- 零基礎學大資料開發,主要分為哪四個步驟?大資料
- 保證軟體開發過程遵循ISO 26262標準的十個進階步驟
- java中UDP接收資料的步驟JavaUDP
- 大資料開發:剖析Hadoop和Spark的Shuffle過程差異大資料HadoopSpark
- 一個Flutter中臺元件的開發過程Flutter元件
- 資料庫設計中的6個最佳實踐步驟資料庫
- 一個通用的三維資料視覺化大屏開發流程 ThingJS視覺化JS
- SAP可配置物料的建立過程及步驟
- HTML5遊戲開發過程中的二三事HTML遊戲開發
- 大資料探勘的大致步驟是怎樣的?大資料
- 採購流程的5個理想步驟
- 5個步驟實現有效的DevSecOpsdev
- Java開發中的工作流程和步驟Java
- Linux下部署springboot專案的步驟及過程LinuxSpring Boot
- 大資料視覺化分析的步驟有哪些大資料視覺化
- 乾貨分享:資料分析的6大基本步驟
- 使用VSCode設定Python作為資料科學開發的10個步驟 - Gong NaVSCodePython資料科學Go
- 大資料分析過程是如何的大資料
- CSS開發過程中的20個快速提升技巧CSS
- 皮膚開發過程中遇到的3個問題
- 成功實施CRM流程的5個步驟
- 4個步驟帶你搞定大資料,Linux到大資料學習路線資料(絕對必看)大資料Linux
- 步步為贏,做好資料分析的7個步驟
- Python 使用QT5開發介面的一個demo開發過程的總結PythonQT
- 學習大資料必須瞭解的大資料開發課程大綱大資料
- spring 程式開發步驟Spring
- 資料探勘的步驟有哪些?
- 制定供應商管理流程的5個步驟
- 大資料開發-Spark-拷問靈魂的5個問題大資料Spark
- 正確做資料治理的10個關鍵步驟