自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

第46期:大數(shù)據(jù)集群該不該透明化?

企業(yè)動態(tài)
大數(shù)據(jù)集群該不該透明化?這好像是個多余的問題,大部分大數(shù)據(jù)平臺都把集群透明化作為一個基本目標在努力實現(xiàn)。

【數(shù)據(jù)蔣堂】第46期:大數(shù)據(jù)集群該不該透明化?

這好像是個多余的問題,大部分大數(shù)據(jù)平臺都把集群透明化作為一個基本目標在努力實現(xiàn)。

所謂集群透明化,是指把一個多臺機器的集群模擬得像一個巨大的單機,只是系統(tǒng)管理層面知道體系是由很多單機集群而成,應用程序則應當盡量少地感受到集群的存在,在概念上可以把整個集群理解成一臺機器,甚至在代碼級都可能和單機運算兼容。

透明化主要有兩個方面。一方面是數(shù)據(jù)存儲,提供統(tǒng)一的集群文件系統(tǒng)或者數(shù)據(jù)庫系統(tǒng),應用程序不需要關(guān)心數(shù)據(jù)具體存放在哪里了,系統(tǒng)將自動尋找合適的節(jié)點,并提供一定的冗余容錯機制;內(nèi)存的透明化相對要困難一些,有時需要應用程序知道集群的存在。另一方面是任務分配,系統(tǒng)負責將大任務拆分成小任務并分配給各個節(jié)點機去執(zhí)行,在有節(jié)點故障時能再將任務分配給其它節(jié)點;有時任務拆分比較困難,也需要程序員事先設計好拆分方案。

透明化顯然有好處,可以降低理解難度,開發(fā)程序時和單機情況差不多,也能提高代碼的兼容性。從這個意義上講,只要能透明化就都應當去做,除非是實現(xiàn)難度太大(比如上面提到內(nèi)存和任務拆分)的情況。

那么,為什么還要提出該不該透明化的問題呢?

因為,透明化難以獲得***的性能,而高性能對于大數(shù)據(jù)計算又是一個關(guān)鍵的目標。

高性能計算方案因運算目標和數(shù)據(jù)特征而異,并沒有普適的優(yōu)化方法。好算法需要特定的數(shù)據(jù)分布及任務分配方案,而使用系統(tǒng)自動的機制就很可能無法實現(xiàn)了。有些優(yōu)化手段還是互相矛盾的,如果不做透明化則可以根據(jù)場景選用哪種。而實現(xiàn)透明化時,為了保證在任何情況都能正常工作,經(jīng)常只能選擇較保險的方案,常常這并不是性能***的方案。

比如在做JOIN運算時,我們可以從業(yè)務上區(qū)分維表和事實表,也事先知道維表的容量,如果維表數(shù)據(jù)量較小,則可以將維表主動存儲到所有節(jié)點中甚至讀入內(nèi)存,而只把事實表分段存儲到節(jié)點中,并按此分布設計更優(yōu)的算法能。而透明化方案不能做這些假定,要處理一般情況,就不能區(qū)分維表和事實表,也不能假定維表足夠小。有些計算平臺能夠臨時測定數(shù)據(jù)特征以采用更優(yōu)的計算 方案,針對JOIN這種被研究得很透的運算有可能做到,但更復雜的情況就不一定了。

另外,透明化體系一般都會有一個較復雜的框架來控制數(shù)據(jù)分布及實現(xiàn)任務調(diào)度,這個事并不簡單,本身也會消耗很多資源,而如果不搞透明化或透明化程度較弱時,則可以把這些資源本用到計算上。比如容錯機制,節(jié)點機可能有故障,集群體系要能在故障機數(shù)量不多時保證計算仍然可以進行下去,這需要重新設計數(shù)據(jù)的冗余方案,要求高時還要及時保存中間結(jié)果。

一定程度地犧牲透明化,可以換來更高的性能。數(shù)據(jù)存儲可以直接使用節(jié)點機的文件系統(tǒng),程序員可以根據(jù)運算的特征以及節(jié)點的能力來決定數(shù)據(jù)的分布以及冗余方案,對應用層并不提供一個統(tǒng)一的網(wǎng)絡文件系統(tǒng)。任務分配也由程序員自行處理,也是根據(jù)運算特殊及數(shù)據(jù)分布以及節(jié)點能力來安排任務,養(yǎng)活框架消耗,將盡量多的資源都用到計算任務本身上。

當然,犧牲透明化會帶來程序的開發(fā)復雜度提高,與單機情況的兼容性變差,這也是需要權(quán)衡的問題。透明化與否,并不是非黑即白的選擇。完全透明化,可能得不到***的性能;徹底不透明,又會導致開發(fā)成本又過高。具體要透明到什么程度,根據(jù)實際場來選擇。

一般來講,規(guī)模較大的集群要做好透明化,小規(guī)模集群則可以實施個性化管理。

大集群的節(jié)點多,如果不采用透明化方案,每個節(jié)點都個性化管理,那復雜度會提升太多,雖然可能獲得一些性能提升,但帶來的麻煩度很可能更高。而小集群則實施每個節(jié)點的個性化管理是管得過來的,節(jié)點存儲的數(shù)據(jù)各有不同。對于容錯,大集群在很短的時間段內(nèi)就可能發(fā)生故障節(jié)點,一定要有較強的自動容錯能力,這時花在框架上的開銷是必須的;而小集群則沒有這個問題,幾個節(jié)點的集群保證連續(xù)正常工作許多天并不是個小概率事件,就沒必要在框架上消耗太多資源。

責任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2009-01-08 16:40:51

服務器虛擬化數(shù)據(jù)中心

2023-08-14 18:03:32

2010-10-25 14:16:59

扁平化網(wǎng)絡

2018-03-14 07:47:41

大數(shù)據(jù)語法SQL

2015-10-20 09:07:44

2009-07-01 15:33:23

JAVA認證

2022-09-13 07:31:50

工具代碼Lombok

2012-02-15 09:48:31

移動娛樂廣告封殺

2013-02-18 09:40:28

2013-01-23 14:19:56

健康類App移動應用

2009-01-15 09:49:00

局域網(wǎng)參數(shù)網(wǎng)絡管理

2015-07-02 09:34:35

數(shù)據(jù)中心閃存

2019-03-28 09:44:33

程序員加薪創(chuàng)業(yè)

2014-12-30 09:30:57

.net語言選擇

2016-12-22 23:55:40

架構(gòu)師代碼技術(shù)

2013-05-23 15:24:57

Wi-Fi無線網(wǎng)絡設置無線網(wǎng)絡展望

2014-07-16 11:08:30

IT運維北塔軟件

2020-03-09 09:33:31

網(wǎng)絡安全人臉識別技術(shù)

2015-11-19 15:49:42

流量提速降費運營商

2015-10-20 17:02:27

數(shù)據(jù)移除請求微軟
點贊
收藏

51CTO技術(shù)棧公眾號