怎么部署大數(shù)據(jù)系統(tǒng),有哪些方式?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
大數(shù)據(jù)的部署是個(gè)復(fù)雜的過(guò)程,涉及內(nèi)容眾多,但無(wú)論如何都離不開(kāi)以客戶需求為導(dǎo)向。進(jìn)行大數(shù)據(jù)部署時(shí)也需要尋找一個(gè)經(jīng)濟(jì)上的均衡點(diǎn),讓硬件能最大效率的發(fā)揮出功能和性能。所以我們首先需要從客戶的角度去考慮對(duì)方的需求,抽取出影響點(diǎn),如實(shí)際運(yùn)行時(shí)大概的數(shù)據(jù)量,客戶的實(shí)時(shí)性要求怎樣,高可用方面的要求如何,如此等等。
大數(shù)據(jù)項(xiàng)目的實(shí)施,一般從概念階段到部署上線主要分為以下幾個(gè)步驟:
需求分析
首先就需要和使用大數(shù)據(jù)平臺(tái)的用戶進(jìn)行充分的溝通,通過(guò)溝通了解用戶將來(lái)運(yùn)行的上層業(yè)務(wù)的業(yè)務(wù)特點(diǎn)以及重點(diǎn)。一般來(lái)說(shuō),大數(shù)據(jù)的業(yè)務(wù)類(lèi)型基本可分為離線業(yè)務(wù)和在線業(yè)務(wù),離線業(yè)務(wù)主要為MapReduce,進(jìn)行數(shù)據(jù)的分析計(jì)算處理;在線業(yè)務(wù)主要為HBase,HBase對(duì)外提供實(shí)時(shí)的數(shù)據(jù)查詢業(yè)務(wù)。當(dāng)然上層業(yè)務(wù)也可能基于Hive來(lái)處理,但Hive實(shí)質(zhì)上還是基于MapReduce。
了解用戶業(yè)務(wù)運(yùn)行時(shí)的數(shù)據(jù)量,分析數(shù)據(jù)模型,包括已有的數(shù)據(jù)量、后續(xù)單位時(shí)間內(nèi)增加的數(shù)據(jù)量,以及用戶期望的數(shù)據(jù)保存時(shí)間等要求。
模型設(shè)計(jì)
基于用戶的數(shù)據(jù)量等信息設(shè)計(jì)存儲(chǔ)和計(jì)算模型。
考慮數(shù)據(jù)的存儲(chǔ)方式是通過(guò)HDFS進(jìn)行存儲(chǔ)還是通過(guò)HBase進(jìn)行存儲(chǔ),或者兩者兼而有之。如果用戶的數(shù)據(jù)較為離散,并且只有存儲(chǔ)的簡(jiǎn)單要求,一般單純采用HDFS即可滿足要求。如果用戶數(shù)據(jù)存在外部查詢用途,且實(shí)時(shí)性要求較高,則可以考慮采用HBase進(jìn)行存儲(chǔ),通過(guò)HBase對(duì)外提供在線查詢業(yè)務(wù)。
硬件規(guī)劃
主要基于用戶的需求進(jìn)行硬件規(guī)劃、部署設(shè)計(jì)、以及IP地址的規(guī)劃。需要考慮每臺(tái)服務(wù)器的單節(jié)點(diǎn)的性能要求。如計(jì)算要求高,則CPU和內(nèi)存的配置要求也較高,同時(shí)在部署設(shè)計(jì)上需要把計(jì)算節(jié)點(diǎn)獨(dú)立出來(lái),避免存儲(chǔ)節(jié)點(diǎn)占用過(guò)多CPU,導(dǎo)致計(jì)算延遲。如存儲(chǔ)要求高,則需要加大磁盤(pán)的容量,在部署設(shè)計(jì)上可以多DataNode節(jié)點(diǎn)分擔(dān)文件讀寫(xiě)壓力,同時(shí)將計(jì)算節(jié)點(diǎn)和DataNode節(jié)點(diǎn)合設(shè),以減少服務(wù)器數(shù)量。
市場(chǎng)上有各種類(lèi)型的磁盤(pán),性能上存在差異,所以還要考慮磁盤(pán)類(lèi)型的選擇,一般來(lái)說(shuō)選用sas盤(pán)較多,性能要求較低可考慮sata盤(pán),性能要求較高可考慮采用ssd盤(pán)。
另外還可以通過(guò)raid來(lái)輔助實(shí)現(xiàn)磁盤(pán)性能的提升以及高可靠性的提升。
同時(shí)平臺(tái)的整體部署離不開(kāi)高性能網(wǎng)絡(luò)的支撐,所以網(wǎng)絡(luò)建議采用萬(wàn)兆網(wǎng),既可以降低網(wǎng)絡(luò)部署的復(fù)雜性,也可以提高可維護(hù)性。特殊情況下,也可以采用多網(wǎng)口綁定的方式,但是往往會(huì)大幅提高網(wǎng)絡(luò)部署的復(fù)雜性。
對(duì)于實(shí)現(xiàn)高可用,我們一般都會(huì)對(duì)網(wǎng)絡(luò)采用雙網(wǎng)雙平面的部署方式,如下圖所示(圖中略去防火墻等設(shè)備,主要保留平臺(tái)所需的設(shè)備)。
軟件規(guī)劃
根據(jù)用戶的業(yè)務(wù),規(guī)劃采用哪些組件來(lái)滿足用戶的功能要求,并且通過(guò)部署來(lái)實(shí)現(xiàn)業(yè)務(wù)的高可用,高可擴(kuò)展。
在各個(gè)節(jié)點(diǎn)部署服務(wù)時(shí),還要注意服務(wù)間的依賴關(guān)系。如HDFS的QJM方式的HA實(shí)現(xiàn)對(duì)Zookeeper有依賴。
硬件部署
即完成機(jī)架的部署和網(wǎng)絡(luò)的部署,以及服務(wù)器在機(jī)架上的部署。如果有raid卡的話還要完成raid卡的設(shè)置。
軟件部署
當(dāng)硬件完成部署后,接下來(lái)就是部署軟件了,包括操作系統(tǒng)的安裝配置,以及大數(shù)據(jù)平臺(tái)的安裝配置。
操作系統(tǒng)安裝完后,如果是多網(wǎng)口綁定,那就還需要作網(wǎng)口綁定設(shè)置。
然后就是最關(guān)鍵的大數(shù)據(jù)平臺(tái)的部署了,中興通訊自研了一套功能強(qiáng)大的管理系統(tǒng),可完成大規(guī)模的平臺(tái)部署,同時(shí)完成大量節(jié)點(diǎn)的部署,自動(dòng)高效。
為保證大數(shù)據(jù)系統(tǒng)的穩(wěn)定可靠運(yùn)行,在整體部署上應(yīng)遵循如下隔離原則:
生產(chǎn)環(huán)境和測(cè)試環(huán)境的隔離
系統(tǒng)環(huán)境分為生產(chǎn)環(huán)境和測(cè)試環(huán)境。其中生產(chǎn)環(huán)境用于實(shí)際運(yùn)營(yíng),承載真實(shí)業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)應(yīng)用;測(cè)試環(huán)境用于各種功能驗(yàn)證和性能測(cè)試等,包括應(yīng)用在上線前的功能驗(yàn)證。如把兩個(gè)環(huán)境合用,將帶來(lái)很多不確定性,測(cè)試環(huán)境容易對(duì)生產(chǎn)環(huán)境造成干擾,影響生產(chǎn)環(huán)境正常業(yè)務(wù)的提供,甚至測(cè)試環(huán)境中不成熟的應(yīng)用和業(yè)務(wù)運(yùn)行時(shí)可能對(duì)環(huán)境造成破壞性的影響。因此對(duì)兩個(gè)環(huán)境進(jìn)行物理隔離,兩者獨(dú)立運(yùn)行,互不干擾,防止因硬件資源的占用或者搶奪對(duì)運(yùn)行造成不必要的影響。
不同集群的隔離
為避免可能存在的機(jī)架斷電導(dǎo)致集群數(shù)據(jù)丟失或者停止服務(wù),需要將屬于同一個(gè)集群的不同節(jié)點(diǎn)分別部署到不同的機(jī)架上,通過(guò)多個(gè)機(jī)架的方式提供對(duì)服務(wù)器的承載。每個(gè)集群都基于一套獨(dú)立的HDFS運(yùn)行,這樣從物理上和邏輯上與其他集群都進(jìn)行了隔離。
在線應(yīng)用和離線應(yīng)用的隔離
在大數(shù)據(jù)平臺(tái)上運(yùn)行的應(yīng)用分為在線應(yīng)用和離線應(yīng)用兩大類(lèi)。為保證重點(diǎn)在線應(yīng)用的正常運(yùn)行,需要單獨(dú)規(guī)劃HBase集群,且該集群基于一套獨(dú)立的HDFS運(yùn)行,從物理上和邏輯上和其他集群都進(jìn)行隔離。
不同在線應(yīng)用的隔離
對(duì)于在線應(yīng)用,分為一般在線應(yīng)用和重點(diǎn)在線應(yīng)用,重點(diǎn)在線應(yīng)用基于一套獨(dú)立的HDFS運(yùn)行,實(shí)現(xiàn)物理隔離,用于存儲(chǔ)重要的在線數(shù)據(jù),保證實(shí)時(shí)查詢服務(wù)的持續(xù)提供。一般在線應(yīng)用用于提供普通的HBase查詢,對(duì)實(shí)時(shí)性的要求低于重點(diǎn)在線應(yīng)用,所以可和離線應(yīng)用部署在一個(gè)集群中。
不同應(yīng)用數(shù)據(jù)的隔離
集群中的數(shù)據(jù)都是基于HDFS進(jìn)行存放的,因此對(duì)于屬于同一個(gè)集群內(nèi)的應(yīng)用的數(shù)據(jù)隔離,可通過(guò)設(shè)置不同的HDFS目錄存放的方式實(shí)現(xiàn)不同應(yīng)用數(shù)據(jù)的隔離:
不同應(yīng)用屬于不同的用戶,不同的應(yīng)用使用不同的目錄,然后通過(guò)對(duì)目錄進(jìn)行權(quán)限配置的方式進(jìn)行隔離和共享。
各個(gè)應(yīng)用在自身所屬的目錄下設(shè)置子目錄,以及數(shù)據(jù)計(jì)算所需的輸入(例如:Input)和輸出(例如:Output)的目錄名稱等。
我們依據(jù)上述的要求來(lái)考慮硬件的選型、平臺(tái)軟件的版本選擇、部署時(shí)組件的配合以及組件自身針對(duì)業(yè)務(wù)形態(tài)進(jìn)行的優(yōu)化配置。一般來(lái)說(shuō),對(duì)于硬件往往是配置越高越好,但客戶往往也關(guān)注效費(fèi)比等經(jīng)濟(jì)性方面的問(wèn)題,因此我們進(jìn)行大數(shù)據(jù)部署時(shí)也需要尋找一個(gè)經(jīng)濟(jì)上的均衡點(diǎn),讓硬件能最大效率的發(fā)揮出功能和性能。