大数据开发的五个步骤
大數(shù)據(jù)的開發(fā)過(guò)程,如圖1-1所示。
圖 1-1大數(shù)據(jù)開發(fā)通用步驟圖
上圖只是一個(gè)簡(jiǎn)化后的步驟和流程,實(shí)際開發(fā)中,有的步驟可能不需要,有的還需要增加步驟,有的流程可能更復(fù)雜,因具體情況而定。
下面以Google搜索引擎為例,來(lái)說(shuō)明以上步驟。
1.?大數(shù)據(jù)采集
Google的數(shù)據(jù)來(lái)源于互聯(lián)網(wǎng)上的網(wǎng)頁(yè),它們由Google Spider(蜘蛛、爬蟲、機(jī)器人)來(lái)抓取,抓取的原理也很簡(jiǎn)單,就是模擬我們?nèi)说男袨?#xff0c;來(lái)訪問(wèn)各個(gè)網(wǎng)頁(yè),然后保存網(wǎng)頁(yè)內(nèi)容。
Google Spider是一個(gè)程序,運(yùn)行在全球各地的Google服務(wù)器之中,Spider們非常勤奮,日夜不停地工作。
2008年Google數(shù)據(jù)表明,它們每天都會(huì)訪問(wèn)大約200億個(gè)網(wǎng)頁(yè),而在總量上,它們追蹤著300億個(gè)左右的獨(dú)立URL鏈接。
可以說(shuō),只要是互聯(lián)網(wǎng)上的網(wǎng)站,只要沒(méi)有在robots.txt文件禁止Spider訪問(wèn)的話,其網(wǎng)頁(yè)基本上都會(huì)在很短的時(shí)間內(nèi),被抓取到Google的服務(wù)器上。
全球的網(wǎng)頁(yè),這是典型的大數(shù)據(jù)。因此,Google Spider所做的就是典型的大數(shù)據(jù)采集工作。
2.?大數(shù)據(jù)預(yù)處理
Google Spider爬取的網(wǎng)頁(yè),無(wú)論是從格式還是結(jié)構(gòu)等,都不統(tǒng)一,為了便于后續(xù)處理,需要先做一些處理,例如,在存儲(chǔ)之前,先轉(zhuǎn)碼,使用統(tǒng)一的格式對(duì)網(wǎng)頁(yè)進(jìn)行編碼,這些工作就是預(yù)處理。如果你對(duì)大數(shù)據(jù)開發(fā)感興趣,想系統(tǒng)學(xué)習(xí)大數(shù)據(jù)的話,可以加入大數(shù)據(jù)技術(shù)學(xué)習(xí)交流扣扣群:522+數(shù)字189+數(shù)字307,歡迎添加,私信管理員,了解課程介紹,獲取學(xué)習(xí)資源
3.?大數(shù)據(jù)存儲(chǔ)
網(wǎng)頁(yè)經(jīng)過(guò)預(yù)處理后,就可以存儲(chǔ)到Google的服務(wù)器上。
2008年,Google已經(jīng)索引了全世界1萬(wàn)億個(gè)網(wǎng)頁(yè),到2014年,這個(gè)數(shù)字變成了30萬(wàn)億個(gè)。
為了減少開銷,節(jié)約空間,Google將多個(gè)網(wǎng)頁(yè)文件合并成一個(gè)大文件,文件大小通常在1GB以上。
這還是15年以前的數(shù)字,那時(shí),主流臺(tái)式機(jī)硬盤也就是60GB左右,1GB的文件在當(dāng)時(shí)可以說(shuō)是大文件了。
為了實(shí)現(xiàn)這些大文件高效、可靠、低成本存儲(chǔ),Google發(fā)明了一種構(gòu)建在普通商業(yè)機(jī)器之上的分布式文件系統(tǒng):Google File System,縮寫為GFS,用來(lái)存儲(chǔ)文件(又稱之為非結(jié)構(gòu)化數(shù)據(jù))。
網(wǎng)頁(yè)文件存儲(chǔ)下來(lái)后,就可以對(duì)這些網(wǎng)頁(yè)進(jìn)行處理了,例如統(tǒng)計(jì)每個(gè)網(wǎng)頁(yè)出現(xiàn)的單詞以及次數(shù),統(tǒng)計(jì)每個(gè)網(wǎng)頁(yè)的外鏈等等。
這些被統(tǒng)計(jì)的信息,就成為了數(shù)據(jù)庫(kù)表中的一個(gè)屬性,每個(gè)網(wǎng)頁(yè)最終就會(huì)成為數(shù)據(jù)庫(kù)表中的一條或若干條記錄。
由于Google存儲(chǔ)的網(wǎng)頁(yè)太多,30萬(wàn)億個(gè)以上,因此,這個(gè)數(shù)據(jù)庫(kù)表也是超級(jí)龐大的,傳統(tǒng)的數(shù)據(jù)庫(kù),像Oracle等,根本無(wú)法處理這么大的數(shù)據(jù),因此Google基于GFS,發(fā)明了一種存儲(chǔ)海量結(jié)構(gòu)化數(shù)據(jù)(數(shù)據(jù)庫(kù)表)的分布式系統(tǒng)Bigtable。
上述兩個(gè)系統(tǒng)(GFS和Bigtable)并未開源,Google僅通過(guò)文章的形式,描述了它們的設(shè)計(jì)思想。
所幸的是,基于Google的這些設(shè)計(jì)思想,時(shí)至今日,已經(jīng)出現(xiàn)了不少開源海量數(shù)據(jù)分布式文件系統(tǒng),如HDFS等,也出現(xiàn)了許多開源海量結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng),如HBase、Cassandra等,它們分別用于不同類型大數(shù)據(jù)的存儲(chǔ)。
總之,如果采集過(guò)來(lái)的大數(shù)據(jù)需要存儲(chǔ),要先判斷數(shù)據(jù)類型,再確定存儲(chǔ)方案選型;
如果不需要存儲(chǔ)(如有的流數(shù)據(jù)不需要存儲(chǔ),直接處理),則直接跳過(guò)此步驟,進(jìn)行處理。
4. 大數(shù)據(jù)處理
網(wǎng)頁(yè)存儲(chǔ)后,就可以對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行處理了,對(duì)于搜索引擎來(lái)說(shuō),主要有3步:
1)單詞統(tǒng)計(jì):統(tǒng)計(jì)網(wǎng)頁(yè)中每個(gè)單詞出現(xiàn)的次數(shù);
2)倒排索引:統(tǒng)計(jì)每個(gè)單詞所在的網(wǎng)頁(yè)URL(Uniform Resource Locator統(tǒng)一資源定位符,俗稱網(wǎng)頁(yè)網(wǎng)址)以及次數(shù);
3)計(jì)算網(wǎng)頁(yè)級(jí)別:根據(jù)特定的排序算法,如PageRank,來(lái)計(jì)算每個(gè)網(wǎng)頁(yè)的級(jí)別,越重要的網(wǎng)頁(yè),級(jí)別越高,以此決定網(wǎng)頁(yè)在搜索返回結(jié)果中的排序位置。
例如,當(dāng)用戶在搜索框輸入關(guān)鍵詞“足球”后,搜索引擎會(huì)查找倒排索引表,得到“足球”這個(gè)關(guān)鍵詞在哪些網(wǎng)頁(yè)(URL)中出現(xiàn),然后,根據(jù)這些網(wǎng)頁(yè)的級(jí)別進(jìn)行排序,將級(jí)別最高的網(wǎng)頁(yè)排在最前面,返回給用戶,這就是點(diǎn)擊“搜索”后,看到的最終結(jié)果。
大數(shù)據(jù)處理時(shí),往往需要從存儲(chǔ)系統(tǒng)讀取數(shù)據(jù),處理完畢后,其結(jié)果也往往需要輸出到存儲(chǔ)。因此,大數(shù)據(jù)處理階段和存儲(chǔ)系統(tǒng)的交互非常頻繁。
大數(shù)據(jù)處理和前面大數(shù)據(jù)預(yù)處理,在技術(shù)上是相通的,只是所處階段不同;
此處理環(huán)節(jié)是大數(shù)據(jù)開發(fā)階段的一個(gè)必需的環(huán)節(jié)!
5. 大數(shù)據(jù)可視化
大數(shù)據(jù)可視化是將數(shù)據(jù)以圖形的方式展現(xiàn)出來(lái),與純粹的數(shù)字表示相比,圖形方式更為直觀,更容易發(fā)現(xiàn)數(shù)據(jù)之間的規(guī)律。
例如,Google Analytics是一個(gè)網(wǎng)站流量分析工具,它統(tǒng)計(jì)每個(gè)用戶使用搜索引擎訪問(wèn)網(wǎng)站的數(shù)據(jù),然后得到每個(gè)網(wǎng)站的流量信息,包括網(wǎng)站每天的訪問(wèn)次數(shù),訪問(wèn)量最多的頁(yè)面、用戶的平均停留時(shí)間、回訪率等,所有數(shù)據(jù)都以圖形的方式,直觀地顯示出來(lái),如圖1-2所示
?圖1-2??Google網(wǎng)站訪問(wèn)量分析圖
總結(jié)
以上是生活随笔為你收集整理的大数据开发的五个步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 并发编程之美
- 下一篇: PPT 图 保存为高清图片(可自定义分辨