多集群下資源共享方案
在一些公司中,所有服務(wù)器按照業(yè)務(wù)邏輯被拆分成若干個集群,這些集群各自運行著相對獨立的業(yè)務(wù),并由專門的運維人員管理。
然而,由于集群中應(yīng)用特點不同,它們的利用率可能不一致,同一時間段,有的集群業(yè)務(wù)繁忙,資源利用率高,甚至可能出現(xiàn)排隊等待資源的情況,而另外一些集群則業(yè)務(wù)空閑,資源利用率很低。此外,多個集群也可能導(dǎo)致數(shù)據(jù)冗余度增加,比如一個集群中的業(yè)務(wù)需要另外一個集群中的數(shù)據(jù),可能需要跨集群拷貝數(shù)據(jù),進而占用更多的磁盤空間。
1. 集群共享帶來的好處
為了解決多集群帶來的問題,可將多個集群統(tǒng)一為一個集群,這將帶來以下幾個好處:
(1)提高集群整體利用率。所有業(yè)務(wù)運行在一個大的集群中,并按需分配給各個應(yīng)用程序,可達到資源錯峰交谷的目的,提高系統(tǒng)整體利用率和均衡率。
(2)減少管理成本。多個集群合并成一個大集群后,便于統(tǒng)一管理和統(tǒng)一運維,可減少管理成本。
2. 多集群共享方案
有些公司中,同時存在多個Hadoop集群,這些集群運行著不同的業(yè)務(wù)線,并對實時性、資源需求、優(yōu)先級等有不同要求。為了實現(xiàn)集群資源共享,可將多個Hadoop集群合并成一個,并由Hadoop作業(yè)調(diào)度器統(tǒng)負責資源管理和任務(wù)分配。為了對應(yīng)原先的業(yè)務(wù)邏輯,作業(yè)調(diào)度器通常將用戶分成若干個隊列(每個業(yè)務(wù)線一個隊列),并給每個隊列分配一定比例的資源,作業(yè)調(diào)度器中包含資源分配邏輯,能夠按照一定的策略將資源分配各這些隊列,并靈活實現(xiàn)資源按需分配,以達到資源***利用。
3. 多服務(wù)共享方案
Hadoop只是當前比較流行的開源軟件之一,除了Hadoop,很多公司還有其他一些服務(wù),比如Web Server,Thrift Server、DataBase Service等,同樣,通??紤]到服務(wù)的重要性和將來的發(fā)展,會將這些服務(wù)單獨部署到獨立的幾臺機器上,在大部分情況下,很多機器的資源利用率很低,為了提高機器整體利用率和支持服務(wù)自動化部署,可將這些服務(wù)混搭地部署到各個服務(wù)器上,于是資源統(tǒng)一管理系統(tǒng)誕生了,業(yè)界典型代表是Google的Borg和騰訊的Torca,開源界代表是Mesos和YARN。
資源統(tǒng)一管理系統(tǒng)的另外一個值得一提的動機是數(shù)據(jù)中心編程,也就是說,可以把數(shù)據(jù)中心看成一臺超大的服務(wù)器,由一個資源管理系統(tǒng)對所有的計算資源,包括CPU、內(nèi)存、硬盤、端口號等,進行統(tǒng)一管理和調(diào)度,涉及到的關(guān)鍵技術(shù)包括資源分配、資源隔離、資源劃分等,具體可參考騰訊Torca的設(shè)計文檔。
4. 參考資料
(1)Torca:http://djt.qq.com/article-329-1.html
(2)Mesos:http://www.mesosproject.org/