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