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