基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)和大數(shù)據(jù)技術(shù)領(lǐng)域,特別涉及一種基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理系統(tǒng)及方法。
【背景技術(shù)】
[0002]YARN是第二代Hadoop中的一個(gè)重要組件,負(fù)責(zé)集群中計(jì)算資源的管理與任務(wù)分配。通過(guò)把資源管理的功能獨(dú)立出來(lái)成為一個(gè)組件,這樣就降低了系統(tǒng)的耦合度,并為支持更多的計(jì)算框架提供了接口,目前能夠支持MP1、Spark以及MapReduce等主流計(jì)算框架。YARN調(diào)度器采用單層調(diào)度的架構(gòu),單一的ResourceManager實(shí)例負(fù)責(zé)對(duì)集群中所有任務(wù)進(jìn)行調(diào)度與資源分配。每個(gè)框架對(duì)應(yīng)的Applicat1nMaster收到用戶提交的人物之后向ResourceManager申請(qǐng)資源用于運(yùn)行任務(wù)。YARN的單層調(diào)度架構(gòu)會(huì)導(dǎo)致調(diào)度器節(jié)點(diǎn)負(fù)載過(guò)高,而且計(jì)算框架在接入YARN之前需要根據(jù)接口編寫(xiě)對(duì)應(yīng)的接入模塊,限制了系統(tǒng)的靈活性。此外,YARN底層存儲(chǔ)以來(lái)HDFS,無(wú)法提供對(duì)其余分布式存儲(chǔ)系統(tǒng)的支持。
[0003]Mesos是另一個(gè)主流的集群資源管理項(xiàng)目,與YARN不同,Mesos采用兩層調(diào)度的架構(gòu),上層調(diào)度器只進(jìn)行粗粒度的資源分配,具體各個(gè)框架內(nèi)部的作業(yè)調(diào)度則交給第二層調(diào)度器,由此降低了調(diào)度器的負(fù)載。計(jì)算框架在接入Mesos之前需要向Master節(jié)點(diǎn)進(jìn)行注冊(cè),注冊(cè)過(guò)程中Master會(huì)為該框架分配一定資源,該部分工作由第一層調(diào)度器完成。獲取資源之后,后續(xù)的用戶任務(wù)將由第二層調(diào)度器在所獲取的資源范圍內(nèi)進(jìn)行調(diào)度。Mesos的兩層調(diào)度降低了調(diào)度器的負(fù)載,同時(shí)能夠支持部署多種存儲(chǔ)系統(tǒng),然而Mesos的問(wèn)題在于分布式應(yīng)用的接入仍然需要編寫(xiě)專門(mén)的模塊,而且無(wú)法支持部署同一存儲(chǔ)系統(tǒng)的多個(gè)實(shí)例。
[0004]YARN對(duì)Hadoop生態(tài)系統(tǒng)的應(yīng)用支持很好,但是底層存儲(chǔ)依賴于HDFS,無(wú)法滿足多樣化存儲(chǔ)的需求;MeS0S采用兩層調(diào)度的架構(gòu)解決了單點(diǎn)調(diào)度器的瓶頸問(wèn)題,但其仍然無(wú)法支持部署同一存儲(chǔ)應(yīng)用的多個(gè)實(shí)例。因此,如何設(shè)計(jì)一個(gè)能夠在多租戶環(huán)境下,提供多樣化存儲(chǔ)與計(jì)算應(yīng)用的系統(tǒng)是一個(gè)需要解決的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的旨在至少解決上述的技術(shù)缺陷之一。
[0006]為此,本發(fā)明的一個(gè)目的在于提出一種基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理系統(tǒng),該系統(tǒng)采用虛擬容器技術(shù)進(jìn)行資源與環(huán)境的隔離,采用雙層調(diào)度的架構(gòu)降低了上層調(diào)度器負(fù)載和分布式應(yīng)用與調(diào)度器的耦合度,并且對(duì)實(shí)時(shí)調(diào)度存儲(chǔ)系統(tǒng)提供了支持。
[0007]本發(fā)明的另一個(gè)目的在于提出一種基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理方法。
[0008]為了實(shí)現(xiàn)上述目的,本發(fā)明的第一方面的實(shí)施例公開(kāi)了一種基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理系統(tǒng),包括:元數(shù)據(jù)服務(wù)器,所述元數(shù)據(jù)服務(wù)器用于維護(hù)租戶信息和用戶信息,并在用戶訪問(wèn)元數(shù)據(jù)和容器時(shí)進(jìn)行權(quán)限認(rèn)證;調(diào)度器,包括兩層調(diào)度,其中,上層調(diào)度為容器級(jí)別的調(diào)度,下層調(diào)度為任務(wù)級(jí)別的調(diào)度,所述上層調(diào)度用于接收用戶的請(qǐng)求,并為用戶分配和配置對(duì)應(yīng)的容器,所述下層調(diào)度由每個(gè)大數(shù)據(jù)計(jì)算框架的主節(jié)點(diǎn)完成,所述調(diào)度器具有接收用戶提交任務(wù)的接口,以根據(jù)用戶需求和從服務(wù)器發(fā)送的全局資源和任務(wù)運(yùn)行情況,從集群中選擇多個(gè)物理機(jī)以通過(guò)所述物理機(jī)中的容器執(zhí)行所述任務(wù),并向所述物理機(jī)上容器發(fā)送啟停命令;多個(gè)從服務(wù)器,所述從服務(wù)器與所述調(diào)度器相互通訊,用于根據(jù)所述調(diào)度器發(fā)送的啟停命令控制所述物理機(jī)上的容器的啟停,并監(jiān)控物理機(jī)的資源和任務(wù)運(yùn)行情況,以及將所述資源和任務(wù)運(yùn)行情況反饋給所述調(diào)度器。
[0009]另外,根據(jù)本發(fā)明上述實(shí)施例的基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理系統(tǒng)還可以具有如下附加的技術(shù)特征:
[0010]在一些示例中,所述租戶信息包括:團(tuán)體名稱、聯(lián)系方式和支付信息。
[0011]在一些示例中,所述元數(shù)據(jù)服務(wù)器包括:租戶管理模塊,用于維護(hù)每個(gè)租戶信息,并為租戶管理員提供設(shè)置用戶權(quán)限的機(jī)制;用戶管理模塊,用于維護(hù)用戶的信息,并對(duì)用戶進(jìn)行身份認(rèn)證;權(quán)限認(rèn)證模塊,用于在用戶訪問(wèn)元數(shù)據(jù)和容器時(shí)進(jìn)行權(quán)限認(rèn)證。
[0012]在一些示例中,所述從服務(wù)器包括:容器控制器,用于對(duì)所述物理機(jī)上的容器進(jìn)行監(jiān)控,并根據(jù)所述啟停命令控制所述容器的啟停;資源監(jiān)控模塊,用于監(jiān)測(cè)所述物理機(jī)的資源和任務(wù)執(zhí)行情況,其中,所述資源包括:CPU使用、內(nèi)存占用、網(wǎng)絡(luò)1和磁盤(pán)占用情況;通信模塊,用于與所述調(diào)度器相互通信,并向所述調(diào)度器發(fā)送所述物理機(jī)的資源和任務(wù)執(zhí)行情況,并接收所述調(diào)度器發(fā)送的所述啟停命令。
[0013]在一些示例中,所述用戶通過(guò)SSH向所述容器進(jìn)行任務(wù)提交。
[0014]本發(fā)明第二方面的實(shí)施例公開(kāi)了一種基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理方法,包括以下步驟:用戶向調(diào)度器提交創(chuàng)建集群請(qǐng)求;所述調(diào)度器向從服務(wù)器發(fā)送資源占用情況請(qǐng)求;所述從服務(wù)器將物理機(jī)的資源占用情況反饋給所述調(diào)度器,所述調(diào)度器選擇滿足所述資源占用情況請(qǐng)求的物理機(jī)的集合;所述調(diào)度器通向所述從服務(wù)器發(fā)送容器啟動(dòng)命令;所述從服務(wù)器根據(jù)要求設(shè)置物理機(jī)上的容器的資源占用上限并啟動(dòng)所述容器;在所述容器啟動(dòng)完成后,所述從服務(wù)器通知所述調(diào)度器;所述調(diào)度器將所述容器的集群的IP發(fā)送給所述用戶;所述用戶向所述容器提交任務(wù);當(dāng)所述任務(wù)執(zhí)行完畢后,所述容器向所述用戶發(fā)送執(zhí)行結(jié)果。
[0015]另外,根據(jù)本發(fā)明上述實(shí)施例的基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理方法還可以具有如下附加的技術(shù)特征:
[0016]在一些示例中,所述集群請(qǐng)求包括:應(yīng)用類型、節(jié)點(diǎn)數(shù)、硬件描述,其中,所述硬件描述包括.-CPU頻率、核數(shù)、硬盤(pán)大小和內(nèi)存大小。
[0017]在一些示例中,所述從服務(wù)器利用應(yīng)用容器引擎對(duì)任務(wù)占用的資源和環(huán)境進(jìn)行隔離。
[0018]在一些示例中,所述用戶通過(guò)SSH向所述容器提交任務(wù)。
[0019]在一些示例中,所述資源占用情況以鏈表的形式存儲(chǔ)在所述調(diào)度器中。
[0020]本發(fā)明的實(shí)施例解決了如何在異構(gòu)的底層存儲(chǔ)硬件之上,提供統(tǒng)一的存儲(chǔ)與計(jì)算池,滿足用戶多模態(tài)的存儲(chǔ)需求與多樣化的計(jì)算需求,并且能夠隔離不同用戶的資源與應(yīng)用。本發(fā)明的實(shí)施例,采用虛擬容器技術(shù)進(jìn)行資源與環(huán)境的隔離,采用雙層調(diào)度的架構(gòu)降低了頂層調(diào)度器負(fù)載以及分布式應(yīng)用與調(diào)度器的耦合度,并且對(duì)實(shí)時(shí)調(diào)度存儲(chǔ)系統(tǒng)提供了支持。
[0021]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
【附圖說(shuō)明】
[0022]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中,
[0023]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理系統(tǒng)的結(jié)構(gòu)框圖;以及
[0024]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的基于虛擬容器的大數(shù)據(jù)存儲(chǔ)與管理方法的流程圖。
【具體實(shí)施方式】
[0025]下面詳細(xì)描述本發(fā)明的實(shí)施例,實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0026]在本發(fā)明的描述中,需要理解的是,術(shù)語(yǔ)“中心”、“縱向”、“橫向”、“上”、“下”、“前”