大數(shù)據(jù)科普:大數(shù)據(jù)后臺層次角色及數(shù)據(jù)流向_第1頁
大數(shù)據(jù)科普:大數(shù)據(jù)后臺層次角色及數(shù)據(jù)流向_第2頁
大數(shù)據(jù)科普:大數(shù)據(jù)后臺層次角色及數(shù)據(jù)流向_第3頁
大數(shù)據(jù)科普:大數(shù)據(jù)后臺層次角色及數(shù)據(jù)流向_第4頁
大數(shù)據(jù)科普:大數(shù)據(jù)后臺層次角色及數(shù)據(jù)流向_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

大數(shù)據(jù)科普:大數(shù)據(jù)系統(tǒng)后臺層次角色

及數(shù)據(jù)流向最近有不少質(zhì)疑大數(shù)據(jù)的聲音,這些質(zhì)疑有一定的道理,但結(jié)論有些以偏概全,應(yīng)該具體問題具體分析。對大數(shù)據(jù)的疑問和抗拒往往是因?yàn)閷ζ洳涣私?,需要真正了解之后才能得出比較客觀的結(jié)論。大數(shù)據(jù)是一個(gè)比較寬泛的概念,它包含大數(shù)據(jù)存儲和大數(shù)據(jù)計(jì)算,其中大數(shù)據(jù)計(jì)算可大致分為計(jì)算邏輯相對簡單的大數(shù)據(jù)統(tǒng)計(jì),以及計(jì)算邏輯相對復(fù)雜的大數(shù)據(jù)預(yù)測。下面分別就以上三個(gè)領(lǐng)域簡要分析一下:第一,大數(shù)據(jù)存儲解決了大數(shù)據(jù)技術(shù)中的首要問題,即海量數(shù)據(jù)首先要能保存下來,才能有后續(xù)的處理。因此大數(shù)據(jù)存儲的重要性是毫無疑問的。第二,大數(shù)據(jù)統(tǒng)計(jì)是對海量數(shù)據(jù)的分析統(tǒng)計(jì)和輕度挖掘,例如統(tǒng)計(jì)海量用戶產(chǎn)品的日/月活躍度、用戶基于地區(qū)的分布、用戶歷史操作、運(yùn)營側(cè)數(shù)據(jù)指標(biāo)等,這些需要大數(shù)據(jù)計(jì)算平臺的支持才能實(shí)現(xiàn),對于擁有海量用戶的互聯(lián)網(wǎng)公司來說是不可或缺的技術(shù)。第三,大數(shù)據(jù)預(yù)測領(lǐng)域才是爭議最多的領(lǐng)域。事實(shí)上,預(yù)測必有誤差、必有小概率事件,大數(shù)據(jù)預(yù)測的背后是各種機(jī)器學(xué)習(xí)/模式識別等深度挖掘算法,這些算法只是工具而已,用得好不好、恰不恰當(dāng)還是要看應(yīng)用的領(lǐng)域和使用者本身的能力。就像C++語言這個(gè)工具,適合做后臺開發(fā),不適合做網(wǎng)頁前端,有C++編程很牛的程序員,也有編程很差的程序員,不能因?yàn)榇嬖诰幊滩畹某绦騿T而否定C++。此外,大數(shù)據(jù)預(yù)測想要做到精準(zhǔn),門檻非常高,所以有很多聲稱使用大數(shù)據(jù)預(yù)測的產(chǎn)品,實(shí)際效果往往不佳,給人們造成了大數(shù)據(jù)預(yù)測普遍不行的印象。由于門檻高,真正能掌握大數(shù)據(jù)預(yù)測能力,做到精準(zhǔn)的,目前只有很少數(shù)產(chǎn)品。綜上所述,大數(shù)據(jù)存儲和大數(shù)據(jù)統(tǒng)計(jì)是海量用戶產(chǎn)品不可或缺的技術(shù),而對于大數(shù)據(jù)預(yù)測技術(shù),小概率事件必然出現(xiàn),且并不是每個(gè)人都能運(yùn)用得好。所以不能籠統(tǒng)地說大數(shù)據(jù)沒有用處,要看具體領(lǐng)域,以及產(chǎn)品背后的團(tuán)隊(duì)。大數(shù)據(jù)經(jīng)過最近幾年的發(fā)展,它的基礎(chǔ)設(shè)施一一各個(gè)大數(shù)據(jù)存儲和計(jì)算平臺已經(jīng)比較成熟,業(yè)界主流的大數(shù)據(jù)平臺在后臺的層次角色在物理層,根據(jù)不同的使用場景以及成本預(yù)算的考慮,會(huì)采用不同的硬件配置方案。對于自身容錯(cuò)備份機(jī)制較好的大存儲系統(tǒng),只需使用SATA硬盤即可;若所承載的平臺自身容災(zāi)機(jī)制較弱甚至是無,且數(shù)據(jù)比較重要,則可以使用RAID或者SAS硬盤。對于大部分存儲和計(jì)算平臺來說,網(wǎng)絡(luò)一般不是最大的瓶頸,所以使用千兆網(wǎng)卡和交換機(jī)即可;對于內(nèi)部網(wǎng)絡(luò)吞吐量非常大,內(nèi)部網(wǎng)絡(luò)IO已經(jīng)成為瓶頸,并且時(shí)效性要求非常高的核心業(yè)務(wù),可以使用萬兆網(wǎng)卡和交換機(jī)提高性能。在計(jì)算性能上,近年來逐步興起與成熟的語音識別技術(shù)和深度學(xué)習(xí)技術(shù),由于計(jì)算量異常巨大,需要依靠GPU加速或者是重核卡的加速才能在可容忍的時(shí)間內(nèi)完成計(jì)算,業(yè)界不少的專用集群都配備了GPU或是重核卡。隨著SSD的成本不斷下降,它成為對硬盤IO性能有高要求的應(yīng)用非常有吸引力的選擇。為了充分復(fù)用服務(wù)器的資源,將其空閑部分繼續(xù)加以利用,虛擬機(jī)技術(shù)成為了有效的解決方案;同時(shí)虛擬機(jī)的資源隔離機(jī)制,使得服務(wù)器的資源分配可以達(dá)到更精細(xì)的粒度,從而使資源分配更加合理和高效。業(yè)界不少大數(shù)據(jù)平臺,都搭建在了虛擬機(jī)集群之上。此外,為了保證服務(wù)的高可用性,防止機(jī)架、機(jī)房甚至是城市的網(wǎng)絡(luò)、電源故障等突發(fā)災(zāi)情,重要的業(yè)務(wù)需要進(jìn)行多機(jī)房、多城市的容災(zāi)部署。在軟件層面上,第一層首先是云存儲層。按時(shí)效性劃分,各個(gè)大數(shù)據(jù)存儲平臺一般分為離線存儲和在線存儲兩種類型。離線存儲用來對超大規(guī)模數(shù)據(jù)(一般PB以上)進(jìn)行持久性存儲,適用于數(shù)據(jù)訪問響應(yīng)時(shí)間要求低(秒級以上)的場景。在主流平臺里最典型的就是hadoop的HDFS。在線存儲用來對海量數(shù)據(jù)進(jìn)行實(shí)時(shí)的訪問,適用于在線服務(wù)場景或者是對數(shù)據(jù)訪問響應(yīng)時(shí)間有高要求的計(jì)算任務(wù)提供支持的場景。在線存儲不一定需要對數(shù)據(jù)進(jìn)行持久化,同時(shí)它既可以是原始數(shù)據(jù),也可以只是緩存的數(shù)據(jù)。在主流的平臺里,Memcached是一個(gè)分布式內(nèi)存緩存系統(tǒng),不提供持久化。Redis與Memcached類似,但是它提供了持久化能力及主從同步能力,所支持的數(shù)據(jù)類型和操作更加豐富。以上兩者是典型的緩存系統(tǒng),在中等數(shù)據(jù)規(guī)模下表現(xiàn)較好,對于更大數(shù)據(jù)規(guī)模就會(huì)比較吃力,這時(shí)就需要使用HBase或者Cassandra等支持實(shí)時(shí)場景的大容量存儲系統(tǒng)。同時(shí),由于HBase和Cassandra支持超大規(guī)模數(shù)據(jù)的持久化存儲,它們也可以用在離線存儲領(lǐng)域。大數(shù)據(jù)的計(jì)算層平臺按照時(shí)效性劃分,也分為離線計(jì)算和在線計(jì)算(或叫實(shí)時(shí)計(jì)算)兩種類型,而各個(gè)計(jì)算間的數(shù)據(jù)傳遞工作一部分由存儲系統(tǒng)完成,另一部分由數(shù)據(jù)管道系統(tǒng)(如消息隊(duì)列系統(tǒng)等)完成。離線計(jì)算平臺通常用來處理數(shù)據(jù)量巨大,耗時(shí)長的計(jì)算任務(wù),適用于對大量數(shù)據(jù)的統(tǒng)計(jì)分析和深度挖掘。典型的離線計(jì)算平臺有:作為通用并行計(jì)算模型的hadoopMapReduce、Spark高性能并行計(jì)算的MPI;數(shù)據(jù)倉庫式計(jì)算的Hive、Impala、Shark;圖模型計(jì)算的Pregel、Bagel、GraphX等。在線計(jì)算/實(shí)時(shí)計(jì)算平臺通常用來處理流式數(shù)據(jù),適用于計(jì)算量一般較輕,且時(shí)效性需求高或永不間斷的計(jì)算場景。常見的實(shí)時(shí)計(jì)算平臺有:Storm、S4、SparkStreaming等。消息隊(duì)列平臺一般用于上下游計(jì)算的數(shù)據(jù)銜接,特別是時(shí)效性要求較高的計(jì)算流程,每個(gè)計(jì)算步驟的輸出結(jié)果寫入消息隊(duì)列平臺后,下游計(jì)算可立即感知并啟動(dòng)計(jì)算,縮短反應(yīng)時(shí)間。業(yè)界用得較多的平臺包括輕量級的Kestrel,以及重量級、容錯(cuò)性好的Kafka。業(yè)務(wù)邏輯層承載著各個(gè)業(yè)務(wù)具體的計(jì)算邏輯,一般來說有日志處理、離線分析、深度挖掘、分類聚類、預(yù)測建模等離線業(yè)務(wù),也有實(shí)時(shí)挖掘、實(shí)時(shí)監(jiān)控等實(shí)時(shí)處理業(yè)務(wù)。最外的服務(wù)層就是直接對外提供服務(wù)的各個(gè)業(yè)務(wù)的線上服務(wù)器集群。位于后臺的各個(gè)大數(shù)據(jù)平臺,為了容災(zāi)、資源復(fù)用、例行維護(hù)的考慮,其服務(wù)訪問入口可能會(huì)發(fā)生變化,因此往往需要一個(gè)資源定位系統(tǒng)來獲取各個(gè)平臺當(dāng)前最新的服務(wù)訪問入口。通過資源定位系統(tǒng)提供的自動(dòng)定位服務(wù)能力,各個(gè)平臺服務(wù)接口的遷移就可以對使用者透明。在大數(shù)據(jù)各平臺的整體層次結(jié)構(gòu)中,最不可或缺的配套系統(tǒng)就是自動(dòng)監(jiān)控運(yùn)維系統(tǒng)。海量數(shù)據(jù)的處理,對存儲和計(jì)算的壓力都是非常巨大的,所以各個(gè)平臺出現(xiàn)硬件異常和軟件異常的概率急速上升,因此需要一套自動(dòng)監(jiān)控運(yùn)維系統(tǒng)來不斷監(jiān)控各個(gè)服務(wù)器的硬件狀況,操作系統(tǒng)層面的CPU、內(nèi)存、IO、網(wǎng)絡(luò)等各個(gè)指標(biāo),大數(shù)據(jù)平臺層面的運(yùn)作情況,業(yè)務(wù)邏輯層面的服務(wù)狀態(tài)等。另外一方面,雖然各個(gè)大數(shù)據(jù)平臺都具有一定的容錯(cuò)能力,但是并不是所有類型的錯(cuò)誤都能夠容忍,并且當(dāng)出現(xiàn)了可容忍的小錯(cuò)誤時(shí),往往預(yù)示著更致命的錯(cuò)誤隱藏在背后,若不及時(shí)發(fā)現(xiàn),就很可能導(dǎo)致非常嚴(yán)重的后果。因此需要監(jiān)控運(yùn)維系統(tǒng)將這些小問題提前預(yù)警出來,以便將事故扼殺在萌芽中。自動(dòng)監(jiān)控運(yùn)維系統(tǒng)一般具有系統(tǒng)狀態(tài)檢測、性能分析、監(jiān)控報(bào)警、自動(dòng)發(fā)布與回滾等能力。尤其是自動(dòng)發(fā)布與回滾能力,對于海量用戶的業(yè)務(wù)來說,是必不可少的,可以大大減輕運(yùn)維的工作量,消除容易出錯(cuò)的人工環(huán)節(jié),增加業(yè)務(wù)的穩(wěn)定性。前面給出了各個(gè)大數(shù)據(jù)系統(tǒng)在后臺的層次結(jié)構(gòu),接下來介紹一下業(yè)務(wù)數(shù)據(jù)在各個(gè)平臺之間的流向關(guān)系。第一種是線上的實(shí)時(shí)日志流;第二種是定期批量收集和更新的數(shù)據(jù);第三種是長期不變的靜態(tài)數(shù)據(jù)。前兩種數(shù)據(jù)通常發(fā)布到訂閱發(fā)布系統(tǒng)當(dāng)中,以通知下游消費(fèi)者進(jìn)行消費(fèi)。靜態(tài)數(shù)據(jù)一般直接保存在離線存儲系統(tǒng)中,供需要時(shí)訪問。發(fā)布訂閱系統(tǒng)負(fù)責(zé)管理數(shù)據(jù)的發(fā)布和收集下游的訂閱需求,將數(shù)據(jù)分發(fā)給對應(yīng)的消費(fèi)者,一部分?jǐn)?shù)據(jù)會(huì)發(fā)送到在線計(jì)算平臺,另一部分?jǐn)?shù)據(jù)會(huì)落入離線存儲平臺。發(fā)布訂閱系統(tǒng)可分為持久式和非持久式,可根據(jù)業(yè)務(wù)的特性選用。對于在線處理部分,在線計(jì)算平臺所需的數(shù)據(jù)一部分來自從發(fā)布訂閱系統(tǒng)中獲取實(shí)時(shí)數(shù)據(jù),另一部分來自在線存儲系統(tǒng)。在線計(jì)算平臺常見的計(jì)算類型有在線服務(wù)、流式計(jì)算、實(shí)時(shí)回饋等,分別服務(wù)于數(shù)據(jù)抓取、實(shí)時(shí)統(tǒng)計(jì)、實(shí)時(shí)監(jiān)控、在線分析、實(shí)時(shí)推薦等應(yīng)用。在線存儲平臺中的數(shù)據(jù)一般分為臨時(shí)緩存數(shù)據(jù)和持久化數(shù)據(jù),這些數(shù)據(jù)通常來自在線計(jì)算平臺和離線計(jì)算平臺。在線存儲平臺承載的應(yīng)用有:KV緩存、數(shù)據(jù)庫緩存、流式數(shù)據(jù)、字典服務(wù)等。對于離線處理部分,離線存儲平臺負(fù)責(zé)對文件、對象、結(jié)構(gòu)化數(shù)據(jù)的存儲,服務(wù)于日志、網(wǎng)頁、關(guān)系鏈、多媒體、字典、數(shù)據(jù)庫等應(yīng)用,它的數(shù)據(jù)來源非常豐富。而離線計(jì)算平臺的數(shù)據(jù)一般來自離線存儲和在線存儲,計(jì)算結(jié)果往往也寫回離線和在線存儲平臺。離線計(jì)算平臺上的計(jì)算分為IO密集型、計(jì)算密集型、迭代型、類SQL型等類型,分別對搜索排序、廣告算法、個(gè)性化推薦、安全檢測等應(yīng)用提供支持。這里不得不提的是用在離線處理中的任務(wù)依賴控制系統(tǒng)。在線處理的各系統(tǒng)由于基本上是數(shù)據(jù)流驅(qū)動(dòng)或者是事件驅(qū)動(dòng)的,所以不需要顯式地設(shè)置各個(gè)任務(wù)的上下游依賴關(guān)系,數(shù)據(jù)和事件的流式傳播即觸發(fā)了對應(yīng)的計(jì)算。而對于離線處理,各個(gè)任務(wù)都是批量處理的方式,因此需要等上游完成批量處理,下游才能開始接著處理?,F(xiàn)實(shí)中往往采用定時(shí)器+預(yù)估完成時(shí)間的方式來粗略地隱式地配置任務(wù)依賴,這樣帶來的問題是:第一,預(yù)估時(shí)間不準(zhǔn)確,造成時(shí)間的浪費(fèi)或是無效的計(jì)算;第二,上游的延遲會(huì)引起下游的連鎖反應(yīng),不具有彈性的容忍機(jī)制;第三,隨著任務(wù)增多,依賴關(guān)系配置和執(zhí)行時(shí)間的預(yù)估變得越發(fā)復(fù)雜和不可控,而且任務(wù)遷移時(shí)很容易發(fā)生任務(wù)丟失和依賴失效的問題。任務(wù)依賴控制系統(tǒng)正是為了解決這些問題而誕生的,它把所有任務(wù)的依賴拓?fù)潢P(guān)系放到全局統(tǒng)一的視圖中,將這些任務(wù)集中起來管理,可視化地配置它們的依賴關(guān)系,任務(wù)的遷移變得簡單可靠。同時(shí),它負(fù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論