本發(fā)明涉及云數(shù)據(jù)庫技術(shù)領(lǐng)域,具體而言,涉及一種云數(shù)據(jù)庫系統(tǒng)以及云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法。
背景技術(shù):
隨著網(wǎng)絡(luò)的興起,越來越多的行業(yè),將會(huì)把自己的各種資源信息以數(shù)字化的形式存放到數(shù)據(jù)庫中,這不僅能方便企業(yè)存取信息,也能方便企業(yè)高效的利用這些信息,分析自己的不足,提高企業(yè)生產(chǎn)效率。
數(shù)據(jù)對(duì)企業(yè)來說越來越重要,存取數(shù)據(jù)的技術(shù)也顯得越來越重要。盡管數(shù)據(jù)存儲(chǔ)技術(shù)經(jīng)過幾十年的發(fā)展,已經(jīng)取得了長(zhǎng)足的進(jìn)步,但面對(duì)今天以大數(shù)據(jù)為背景的信息時(shí)代,傳統(tǒng)的數(shù)據(jù)存儲(chǔ)技術(shù)由于其本身設(shè)計(jì)的限制,很難適應(yīng)當(dāng)今數(shù)據(jù)快速增加,大容量和高性能的需求。非關(guān)系型數(shù)據(jù)存儲(chǔ)系統(tǒng)為存取大量數(shù)據(jù)帶來了希望,然而卻要依靠復(fù)雜的人工部署。人工部署具有一定的滯后性,可能會(huì)造成性能過剩或者性能的不足,很難滿足實(shí)際的需要。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種云數(shù)據(jù)庫系統(tǒng)以及云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,能夠自動(dòng)對(duì)云數(shù)據(jù)庫的資源根據(jù)實(shí)際需求進(jìn)行自動(dòng)的調(diào)整。
第一方面,本發(fā)明實(shí)施例提供了一種云數(shù)據(jù)庫系統(tǒng),包括:數(shù)據(jù)庫集群、監(jiān)控中心以及云平臺(tái)資源池;
其中,所述數(shù)據(jù)庫集群用于向所述監(jiān)控中心提供負(fù)載數(shù)據(jù);
所述監(jiān)控中心,用于監(jiān)控?cái)?shù)據(jù)庫集群的負(fù)載數(shù)據(jù);根據(jù)所述負(fù)載數(shù)據(jù),判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源;在需要調(diào)整資源后,通過與云平臺(tái)資源池進(jìn)行交互,以釋放或者增加數(shù)據(jù)庫集群內(nèi)的資源;
所述云平臺(tái)資源池,用于分配資源或者回收資源。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,其中:所述數(shù)據(jù)庫集群具體包括:分布式計(jì)算主機(jī)hmaster以及多個(gè)區(qū)域服務(wù)器regionserver;
所述數(shù)據(jù)庫集群的負(fù)載數(shù)據(jù)包括:regionserver的性能數(shù)據(jù);
所述hmaster,用于向所述監(jiān)控中心發(fā)送各個(gè)regionserver的性能數(shù)據(jù);
所述監(jiān)控中心具體用于,接收所述hmaster所發(fā)送的各個(gè)regionserver的性能數(shù)據(jù),并將各個(gè)regionserver的性能數(shù)據(jù)與性能最大閾值進(jìn)行比對(duì);如果所述regionserver的性能數(shù)據(jù)大于所述性能最大閾值,則生成并向所述云平臺(tái)資源池發(fā)送regionserver創(chuàng)建指令;如果所述regionserver的性能數(shù)據(jù)小于所述性能最小閾值,則向所述云平臺(tái)資源池發(fā)送regionserver消除指令,并向?qū)?yīng)的regionserver發(fā)送數(shù)據(jù)遷移指令;
所述regionserver,用于接收數(shù)據(jù)遷移指令,并根據(jù)所述數(shù)據(jù)遷移指令進(jìn)行數(shù)據(jù)遷移;
所述云平臺(tái)資源池,具體用于接收到regionserver創(chuàng)建指令,并根據(jù)所述regionserver創(chuàng)建指令創(chuàng)建新的regionserver;在接收到regionserver消除指令后,消除進(jìn)行數(shù)據(jù)遷移后的regionserver。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,其中:所述云平臺(tái)資源池,還用于在創(chuàng)建新的regionserver后,生成創(chuàng)建反饋信息返回至監(jiān)控中心;
所述監(jiān)控中心,還用于根據(jù)反饋信息生成更新推送信息,并將所述更新推送信息發(fā)送至hmaster;
新創(chuàng)建的所述regionserver,用于向hmaster發(fā)送配置信息;
所述hmaster,還用于接收所述更新推送信息以及所述配置信息,并根據(jù)所述更新推送信息以及所述配置信息,將新創(chuàng)建的所述regionserver加入到數(shù)據(jù)庫集群。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,其中:所述監(jiān)控中心,還用于接收regionserver返回的遷移反饋信息后,向該regionserver發(fā)送關(guān)機(jī)指令;接收云平臺(tái)資源池所發(fā)送的消除反饋信息后,向hmaster反饋regionserver消除信息;
所述regionserver,還用于在完成數(shù)據(jù)遷移后,向所述監(jiān)控中心返回遷移反饋信息;在接收到監(jiān)控中心所發(fā)送的關(guān)機(jī)指令后進(jìn)入休眠或者關(guān)機(jī);
所述云平臺(tái)資源池,具體用于在消除了進(jìn)行數(shù)據(jù)遷移后的regionserver后,生成消除反饋信息返回至所述監(jiān)控中心;
所述hmaster,還用于接收監(jiān)控中心所發(fā)送的regionserver消除信息,將對(duì)應(yīng)的regionserver從數(shù)據(jù)庫集群內(nèi)刪除。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,其中:所述數(shù)據(jù)庫集群具體包括:分布式文件系統(tǒng)hdfs;所述hdfs包括:名字節(jié)點(diǎn)namenode以及數(shù)據(jù)節(jié)點(diǎn)datanode;
所述數(shù)據(jù)庫集群的負(fù)載數(shù)據(jù)包括:datanode的容量數(shù)據(jù);
所述datanode,用于向namenode發(fā)送心跳連接數(shù)據(jù);
所述namenode,用于接收各個(gè)datanode的心跳連接數(shù)據(jù),并根據(jù)datanode的心跳連接數(shù)據(jù)中生成所述datanode的容量數(shù)據(jù),將所述datanode的容量數(shù)據(jù)發(fā)送至監(jiān)控中心;
所述監(jiān)控中心,具體用于接收所述datanode的容量數(shù)據(jù),并將所述datanode的容量數(shù)據(jù)與預(yù)設(shè)容量閾值進(jìn)行比對(duì);如果datanode的容量數(shù)據(jù)大于所述容量閾值,則生成datanode生成指令,發(fā)送給云平臺(tái)資源池;
所述云平臺(tái)資源池,具體用于接收所述datanode生成指令,并根據(jù)所述datanode生成指令創(chuàng)建新的datanode。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第五種可能的實(shí)施方式,其中:所述云平臺(tái)資源池,還用于在創(chuàng)建新的datanode之后,向監(jiān)控中心返回datanode創(chuàng)建信息;
所述監(jiān)控中心,還用于接收datanode創(chuàng)建信息,并根據(jù)所述datanode創(chuàng)建信息生成datanode配置信息,發(fā)送給新創(chuàng)建的datanode,以實(shí)現(xiàn)對(duì)新創(chuàng)建的datanode的配置;
新創(chuàng)建的所述datanode,還根據(jù)所述datanode配置信息進(jìn)行配置,并在配置完成后,向所述namenode發(fā)送心跳連接數(shù)據(jù);
所述namenode,還用于接收新創(chuàng)建的datanode所發(fā)送的心跳連接數(shù)據(jù),并根據(jù)新創(chuàng)建的datanode所發(fā)送的心跳連接數(shù)據(jù),將新創(chuàng)建的datanode加入到數(shù)據(jù)庫集群中。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第六種可能的實(shí)施方式,其中:所述數(shù)據(jù)庫集群,還用于在云平臺(tái)資源池分配資源后,對(duì)資源執(zhí)行負(fù)載均衡。
第二方面,本發(fā)明實(shí)施例還提供一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,包括:
監(jiān)控?cái)?shù)據(jù)庫集群的負(fù)載數(shù)據(jù);
根據(jù)所述負(fù)載數(shù)據(jù),判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源;
在需要調(diào)整資源后,與云平臺(tái)資源池進(jìn)行交互,以釋放或者增加數(shù)據(jù)庫集群內(nèi)的資源。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第一種可能的實(shí)施方式,其中:
所述負(fù)載數(shù)據(jù)包括:各個(gè)regionserver的性能數(shù)據(jù);
根據(jù)下述步驟判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源:
獲取hmaster所發(fā)送的各個(gè)regionserver的性能數(shù)據(jù);
將各個(gè)regionserver的性能數(shù)據(jù)與性能最大閾值進(jìn)行比對(duì);
如果所述regionserver的性能數(shù)據(jù)大于所述性能最大閾值,則云平臺(tái)資源池發(fā)送regionserver創(chuàng)建指令,以使得云平臺(tái)資源池創(chuàng)建新的regionserver;
如果所述regionserver的性能數(shù)據(jù)小于所述性能最小閾值,則向云平臺(tái)資源池發(fā)送regionserver消除指令,以使得云平臺(tái)資源池對(duì)進(jìn)行了數(shù)據(jù)遷移的regionserver進(jìn)行消除。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第二種可能的實(shí)施方式,其中:所述數(shù)據(jù)庫集群的負(fù)載數(shù)據(jù)包括:datanode的容量數(shù)據(jù);
根據(jù)下述步驟判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源:
獲取namenode所發(fā)送的datanode的容量數(shù)據(jù);
將所述datanode的容量數(shù)據(jù)與預(yù)設(shè)容量閾值進(jìn)行比對(duì);
如果datanode的容量數(shù)據(jù)大于所述容量閾值,則向云平臺(tái)資源池發(fā)送datanode生成指令,以使得所述云平臺(tái)資源池創(chuàng)建新的datanode。
本發(fā)明實(shí)例所提供的云數(shù)據(jù)庫系統(tǒng)以及云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,數(shù)據(jù)庫集群會(huì)向監(jiān)控中心提供負(fù)載數(shù)據(jù)。負(fù)載包括兩方面的內(nèi)容,其一是當(dāng)前云數(shù)據(jù)庫系統(tǒng)的容量負(fù)載,其二是當(dāng)前數(shù)據(jù)庫訪問負(fù)載。監(jiān)控中心在接收到數(shù)據(jù)庫集群發(fā)送的負(fù)載數(shù)據(jù)之后,會(huì)根據(jù)該負(fù)載數(shù)據(jù)判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源;在需要調(diào)整資源的時(shí)候,通過與云平臺(tái)資源池進(jìn)行交互,來進(jìn)行資源的釋放或者增加,這種云數(shù)據(jù)庫系統(tǒng)根據(jù)云數(shù)據(jù)庫當(dāng)前運(yùn)行的具體狀態(tài)來動(dòng)態(tài)的調(diào)整資源的分配,滿足需求量變化的情況。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實(shí)施例所提供的一種云數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)示意圖;
圖2示出了本發(fā)明實(shí)施例所提供的另一種云數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)示意圖;
圖3示出了本發(fā)明實(shí)施例所提供的一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的流程圖;
圖4示出了本發(fā)明實(shí)施例所提供的另一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的流程圖;
圖5示出了本發(fā)明實(shí)施例所提供的另一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的流程圖;
圖6示出了本發(fā)明實(shí)施例所提供的另一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的流程圖;
圖7示出了本發(fā)明實(shí)施例所提供的另一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的流程圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
有這樣一種企業(yè),其白天業(yè)和夜間的業(yè)務(wù)訪問量相差較大,這歸結(jié)為第一種企業(yè)。也有另外一種企業(yè),其業(yè)務(wù)訪問量會(huì)因?yàn)槟承┕?jié)日,而出現(xiàn)較大幅度的波動(dòng),這歸結(jié)為第二種企業(yè)。第一種企業(yè)為了滿足業(yè)務(wù)的需求,可能會(huì)按照白天的訪問標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)存取系統(tǒng)資源配置。到了夜間,勢(shì)必會(huì)造成較多的性能冗余,會(huì)有額外一些電力浪費(fèi)在服務(wù)器和制冷設(shè)備上,同時(shí)也會(huì)造成物理硬件一定程度的損耗。第二種企業(yè),如果按照最高業(yè)務(wù)訪問量來配置數(shù)據(jù)存取系統(tǒng)資源,企業(yè)將有一筆額外的開銷花費(fèi)在日常性能過剩上。如果按日常業(yè)務(wù)訪問量配置數(shù)據(jù)存取系統(tǒng),則到了某些固定的節(jié)日,服務(wù)請(qǐng)求可能會(huì)出現(xiàn)較長(zhǎng)時(shí)間的延遲,也或者根本無響應(yīng),給企業(yè)帶來一定的損失?;谝陨锨闆r,本申請(qǐng)?zhí)峁┑囊环N云數(shù)據(jù)庫系統(tǒng)以及云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,將物理服務(wù)器虛擬化成私有云結(jié)點(diǎn),形成一個(gè)云數(shù)據(jù)庫系統(tǒng),通過動(dòng)態(tài)調(diào)整整個(gè)云數(shù)據(jù)庫系統(tǒng)的資源配置,來滿足需求量變化的情況。云計(jì)算的發(fā)展,將大量物理計(jì)算機(jī)連接起來,使得計(jì)算能力得到顯著提升,而且可以根據(jù)需要,按需分配資源。如果非關(guān)系型數(shù)據(jù)存儲(chǔ)系統(tǒng)能夠和云計(jì)算結(jié)合起來,利用云計(jì)算配置資源的靈活性,能夠根據(jù)需要,來自動(dòng)配置數(shù)據(jù)庫,對(duì)企業(yè)來說,不僅減少了人力開支,而且在滿足實(shí)際需求的情況下,最大限度地減少了無關(guān)資源的消耗,提升服務(wù)質(zhì)量。當(dāng)訪問量增大時(shí),能夠通過增加hbase的regionserver結(jié)點(diǎn),來增加hbase的吞吐量,提高h(yuǎn)base系統(tǒng)的性能。當(dāng)訪問量小的時(shí)候,在不影響用戶體驗(yàn)的情況下,減少hbaseregionserver數(shù)量,減少物理資源的消耗。當(dāng)系統(tǒng)的存儲(chǔ)容量不足時(shí),能夠通過增加datanode結(jié)點(diǎn)的方式,增加系統(tǒng)的存儲(chǔ)容量。
為便于對(duì)本實(shí)施例進(jìn)行理解,首先對(duì)本發(fā)明實(shí)施例所公開的一種云數(shù)據(jù)庫系統(tǒng)進(jìn)行詳細(xì)介紹,參見圖1所示,本發(fā)明實(shí)施例所提供云數(shù)據(jù)庫系統(tǒng)包括:數(shù)據(jù)庫集群、監(jiān)控中心以及云平臺(tái)資源池;
其中,所述數(shù)據(jù)庫集群用于向所述監(jiān)控中心提供負(fù)載數(shù)據(jù);
所述監(jiān)控中心,用于監(jiān)控?cái)?shù)據(jù)庫集群的負(fù)載數(shù)據(jù);根據(jù)所述負(fù)載數(shù)據(jù),判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源;在需要調(diào)整資源后,通過應(yīng)用程序接口api與云平臺(tái)資源池進(jìn)行交互,以釋放或者增加數(shù)據(jù)庫集群內(nèi)的資源;
所述云平臺(tái)資源池,用于分配資源或者回收資源。
本發(fā)明實(shí)施例所提供的云數(shù)據(jù)庫系統(tǒng)在具體實(shí)現(xiàn)的時(shí)候,數(shù)據(jù)庫集群會(huì)向監(jiān)控中心提供負(fù)載數(shù)據(jù)。負(fù)載包括兩方面的內(nèi)容,其一是當(dāng)前云數(shù)據(jù)庫系統(tǒng)的容量負(fù)載,其二是當(dāng)前數(shù)據(jù)庫訪問負(fù)載。監(jiān)控中心在接收到數(shù)據(jù)庫集群發(fā)送的負(fù)載數(shù)據(jù)之后,會(huì)根據(jù)該負(fù)載數(shù)據(jù)判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源;在需要調(diào)整資源的時(shí)候,通過云平臺(tái)資源池進(jìn)行交互,來進(jìn)行資源的釋放或者增加,這種云數(shù)據(jù)庫系統(tǒng)根據(jù)云數(shù)據(jù)庫當(dāng)前運(yùn)行的具體狀態(tài)來動(dòng)態(tài)的調(diào)整資源的分配,滿足需求量變化的情況。
參見圖2所示,在本發(fā)明另一個(gè)實(shí)施例中,數(shù)據(jù)庫集群實(shí)際上是運(yùn)行在一個(gè)云計(jì)算平臺(tái)上的hbase(hadoopdatabase,分布式存儲(chǔ)系統(tǒng))系統(tǒng),hbase系統(tǒng)一般包括:hmaster(hadoopmaster,分布式計(jì)算主機(jī))、區(qū)域服務(wù)器regionserver、分布式服務(wù)框架zookeeper、客戶端client以及hdfs(hadoopdistributedfilesystem,分布式文件系統(tǒng));其中hdfs是hbase系統(tǒng)的文件存儲(chǔ)系統(tǒng)。由于在本發(fā)明中僅僅涉及到hmaster、regionserver、hbase,因此僅對(duì)上述三者進(jìn)行詳細(xì)描述。
在regionserver中,一張表被分成多個(gè)部分,每一部分叫做一個(gè)區(qū)域region,分布在多個(gè)regionserver中。region中會(huì)保存一個(gè)表里面某段連續(xù)的數(shù)據(jù),regionserver提供維護(hù)用戶創(chuàng)建的表中的每個(gè)region塊。日志hlog和存儲(chǔ)器store共同構(gòu)成了region。store由兩部分組成,分別是memstore和storefile,是hbase系統(tǒng)存儲(chǔ)的核心。
hmaster一方面負(fù)責(zé)對(duì)集群環(huán)境中的reginserver進(jìn)行負(fù)載均衡,另一方面給regionserver分配區(qū)域,還維護(hù)數(shù)據(jù)庫集群環(huán)境中的reginserver的運(yùn)行狀況。
hdfs主要由數(shù)據(jù)節(jié)點(diǎn)datanode和名字節(jié)點(diǎn)namenode組成,其中namenode負(fù)責(zé)處理客戶端的請(qǐng)求,存儲(chǔ)元數(shù)據(jù),管理數(shù)據(jù)塊的映射,配置副本,管理hdfs的命名空間。datanode是數(shù)據(jù)塊存儲(chǔ)結(jié)點(diǎn),直接與磁盤進(jìn)行交互。datanode通過周期性的向namenode發(fā)送心跳和數(shù)據(jù)塊,與namenode保持通信。
本發(fā)明實(shí)施例中的負(fù)載數(shù)據(jù)包括兩方面的內(nèi)容:
一、regionserver的性能數(shù)據(jù)。
當(dāng)所述數(shù)據(jù)庫集群的負(fù)載數(shù)據(jù)包括:regionserver的性能數(shù)據(jù)。
所述hmaster,用于向所述監(jiān)控中心發(fā)送各個(gè)regionserver的性能數(shù)據(jù)。
在具體實(shí)現(xiàn)的時(shí)候,各個(gè)regionserver的性能數(shù)據(jù)可以有多種獲取方式,例如,使用集群監(jiān)控軟件ganglia來進(jìn)行獲取。將gaglia分別部署在hbase的各個(gè)節(jié)點(diǎn)(主要是指regionserver)上,在hmaster上部署gmetad(ucberkeley發(fā)起的一個(gè)開源集群監(jiān)視項(xiàng)目,設(shè)計(jì)用于測(cè)量數(shù)以千計(jì)的節(jié)點(diǎn),其包括:gmond、gmetad以及一個(gè)web前端)程序收集各個(gè)節(jié)點(diǎn)傳回來數(shù)據(jù)。gmetad通過單播路由的方式與gmond通信,收集監(jiān)控區(qū)域內(nèi)各個(gè)節(jié)點(diǎn)的狀態(tài)信息,并將獲得的數(shù)據(jù)保存;在hbase集群的每臺(tái)regionserver結(jié)點(diǎn)上都運(yùn)行一個(gè)gmond程序,該程序收集和發(fā)送監(jiān)控?cái)?shù)據(jù),到gmetad結(jié)點(diǎn)上。其最終具體所獲得的regionserver的性能數(shù)據(jù)包括:regionserver中region的數(shù)量以及region的內(nèi)存使用量中至少一種。
監(jiān)控中心在獲取到regionserver的性能數(shù)據(jù)后,會(huì)將各個(gè)regionserver的性能數(shù)據(jù)與性能最大閾值進(jìn)行比對(duì);如果所述regionserver的性能數(shù)據(jù)大于所述性能最大閾值,則生成并向所述云平臺(tái)資源池發(fā)送regionserver創(chuàng)建指令,云平臺(tái)資源池在接收到regionserver創(chuàng)建指令后,創(chuàng)建新的regionserver,以增加數(shù)據(jù)庫集群內(nèi)的regionserver;如果所述regionserver的性能數(shù)據(jù)小于所述性能最小閾值,則所述云平臺(tái)資源池發(fā)送regionserver消除指令,云平臺(tái)資源池會(huì)在對(duì)應(yīng)的regionserver進(jìn)行數(shù)據(jù)遷移后,消除該regionserver。
所述云平臺(tái)資源池,具體用于接收到regionserver創(chuàng)建指令,并根據(jù)所述regionserver創(chuàng)建指令創(chuàng)建新的regionserver;在接收到regionserver消除指令后,消除進(jìn)行數(shù)據(jù)遷移后的regionserver。
另外,由于被消除的regionserver中還存儲(chǔ)有相關(guān)的數(shù)據(jù),因此需要在消除之前對(duì)即將被消除的regionserver中的相關(guān)數(shù)據(jù)進(jìn)行數(shù)據(jù)遷移。此時(shí),需要監(jiān)控中心向?qū)?yīng)的regionserver發(fā)出數(shù)據(jù)遷移指令。數(shù)據(jù)遷移指令中可以指明數(shù)據(jù)遷移的目標(biāo)regionserver,需要進(jìn)行數(shù)據(jù)遷移的regionserver在接收到該數(shù)據(jù)遷移指令后,根據(jù)該數(shù)據(jù)遷移指令,將相關(guān)的數(shù)據(jù)遷移至目標(biāo)regionserver。
在此需要注意的是,由于hmaster每隔預(yù)設(shè)時(shí)間都會(huì)對(duì)數(shù)據(jù)庫集群內(nèi)的regionserver進(jìn)行負(fù)載均衡,因此在一般情況下,regionserver上的region是比較均衡的。而由于regionserver有多個(gè),每個(gè)regionserver上的region也是多個(gè),因此在將各個(gè)regionserver的性能數(shù)據(jù)與性能最大閾值進(jìn)行比對(duì)的時(shí)候,實(shí)際上應(yīng)當(dāng)預(yù)設(shè)一個(gè)比對(duì)的條件。
例如當(dāng)80%以上regionserver中region的數(shù)量超出了最大閾值,同時(shí)70%的region的內(nèi)存使用量超出了最大閾值,此時(shí),認(rèn)為regionserver的性能數(shù)據(jù)大于所述性能最大閾值,當(dāng)80%以上regionserver中region的數(shù)量小于最小閾值,同時(shí)70%的region的內(nèi)存使用量小于最小閾值,則認(rèn)為,regionserver的性能數(shù)據(jù)小于所述性能最小閾值。需要注意的是上述對(duì)比的條件僅僅是一個(gè)示例,可以任意設(shè)置其中region的數(shù)量以及region的內(nèi)存使用量的百分比,也可以設(shè)置其他的條件,例如僅僅將region的數(shù)量作為參考量,或者將region的內(nèi)存使用量作為參考量。
另外,為了防止上述判斷有誤,錯(cuò)誤的曾加regionserver或者減少regionserver,hmaster會(huì)在一次負(fù)載均衡后預(yù)設(shè)時(shí)間內(nèi)向監(jiān)控中心推送regionserver的性能數(shù)據(jù),使得監(jiān)控中心所接收到的regionserver的性能數(shù)據(jù)是最新數(shù)據(jù)。
所述云平臺(tái)資源池,具體用于接收到regionserver創(chuàng)建指令,根據(jù)所述regionserver創(chuàng)建指令創(chuàng)建新的regionserver;在接收到regionserver消除指令后,消除進(jìn)行數(shù)據(jù)遷移后的regionserver。其具體包括以下兩方面的內(nèi)容:
1、根據(jù)所述regionserver創(chuàng)建指令創(chuàng)建新的regionserver時(shí):
所述云平臺(tái)資源池,還用于在創(chuàng)建新的regionserver后,生成創(chuàng)建反饋信息返回至監(jiān)控中心;
所述監(jiān)控中心,還用于根據(jù)反饋信息生成更新推送信息,并將所述更新推送信息發(fā)送至hmaster;
新創(chuàng)建的所述regionserver,用于向hmaster發(fā)送配置信息;
所述hmaster,還用于接收所述更新推送信息以及所述配置信息,并根據(jù)所述更新推送信息以及所述配置信息,將新創(chuàng)建的所述regionserver加入到數(shù)據(jù)庫集群。
具體地,云平臺(tái)資源池在創(chuàng)建新的regionserver時(shí),為了能夠先行對(duì)regionserver進(jìn)行配置,以便hmaster能夠有權(quán)限對(duì)其進(jìn)行管理,要先創(chuàng)建regionserver系統(tǒng)鏡像文件。在創(chuàng)建虛擬機(jī)時(shí),需要指定虛擬機(jī)類型,主要是指虛擬機(jī)硬件的配置,比如cpu個(gè)數(shù),內(nèi)存大小,磁盤容量等。另外,還需要指定虛擬機(jī)安全策略,網(wǎng)絡(luò)配置等。
創(chuàng)建的虛擬機(jī)會(huì)自動(dòng)啟動(dòng)。由于在制作鏡像處理文件時(shí),配置有監(jiān)控中心遠(yuǎn)程登陸的公鑰,因此,監(jiān)控中心,可以遠(yuǎn)程控制新增結(jié)點(diǎn)的regionserver。虛擬機(jī)開啟以后,控制處理中心會(huì)將最新配置拷貝到該主機(jī)上,并啟動(dòng)相關(guān)工作程序。
2、云平臺(tái)資源池在接收到regionserver消除指令后,消除進(jìn)行數(shù)據(jù)遷移后的regionserver:
所述監(jiān)控中心,還用于接收regionserver返回的遷移反饋信息后,向該regionserver發(fā)送關(guān)機(jī)指令;接收云平臺(tái)資源池所發(fā)送的消除反饋信息后,向hmaster反饋regionserver消除信息;
所述regionserver,還用于在完成數(shù)據(jù)遷移后,向所述監(jiān)控中心返回遷移反饋信息;在接收到監(jiān)控中心所發(fā)送的關(guān)機(jī)指令后進(jìn)入休眠或者關(guān)機(jī);
所述云平臺(tái)資源池,具體用于在消除了進(jìn)行數(shù)據(jù)遷移后的regionserver后,生成消除反饋信息返回至所述監(jiān)控中心;
所述hmaster,還用于接收監(jiān)控中心所發(fā)送的regionserver消除信息,將對(duì)應(yīng)的regionserver從數(shù)據(jù)庫集群內(nèi)刪除。
在具體實(shí)現(xiàn)的時(shí)候,如果需要減少regionserver的數(shù)量,不能直接關(guān)閉虛擬機(jī),雖然hbase可以對(duì)下線的regionserver進(jìn)行被動(dòng)反應(yīng),但從一個(gè)下線的regionserver狀態(tài)恢復(fù),需要它已經(jīng)檢測(cè)出那個(gè)regionserver已經(jīng)下線了,然后才重新分配region,這可能會(huì)經(jīng)歷一次可用性的輕微降低。合理的做法是主動(dòng)轉(zhuǎn)移region到其它regionserver,然后再關(guān)閉regionserver,這樣會(huì)更安全一些。
首先關(guān)閉均衡器,告訴hbase不要再向這臺(tái)regionserver分配任務(wù)了,同時(shí)告訴hbase系統(tǒng),這個(gè)regionserver要下線了,把這上面的數(shù)據(jù)轉(zhuǎn)移走。轉(zhuǎn)移完數(shù)據(jù)之后,這臺(tái)regionserver已經(jīng)和整個(gè)hbase沒什么聯(lián)系了,這個(gè)時(shí)候就可關(guān)閉regionserver。
在具體實(shí)現(xiàn)的時(shí)候,監(jiān)控中心在判斷某個(gè)regionserver需要從數(shù)據(jù)庫集群內(nèi)被刪除,云平臺(tái)資源池回收分配給該regionserver的資源時(shí),需要先向?qū)?yīng)的regionserver發(fā)送數(shù)據(jù)遷移指令。該regionserver接收到數(shù)據(jù)遷移指令之后,將其上運(yùn)行的region遷移至其他regionserver;完成數(shù)據(jù)遷移后,regionserver會(huì)向監(jiān)控中心返回遷移反饋信息。監(jiān)控中心在接收到該遷移反饋信息之后,向該regionserver發(fā)送關(guān)機(jī)指令。regionserver在接收到該關(guān)機(jī)指令之后執(zhí)行關(guān)機(jī);監(jiān)控中心還會(huì)向用云平臺(tái)資源池發(fā)送regionserver消除指令,使得云平臺(tái)資源池將該regionserver消除;云平臺(tái)資源池將該regionserver消除,回收該regionserver消除占用的資源,并向監(jiān)控中心返回消除反饋信息。監(jiān)控中心會(huì)接收云平臺(tái)資源池所發(fā)送的消除反饋信息后,向hmaster反饋regionserver消除信息;hmaster接收監(jiān)控中心所發(fā)送的regionserver消除信息,將對(duì)應(yīng)的regionserver從數(shù)據(jù)庫集群內(nèi)刪除,從而完成了一個(gè)regionserver從數(shù)據(jù)庫集群中被刪除的整個(gè)過程。
二:所述數(shù)據(jù)庫集群的負(fù)載數(shù)據(jù)包括:datanode的容量數(shù)據(jù):
具體地,在hdfs系統(tǒng)中,可以通過增加datanode的數(shù)量來增加hdfs的容量。在hbase投入實(shí)際生產(chǎn)環(huán)境的情況下,hbase存的數(shù)據(jù)是越來越多的,hdfs的容量應(yīng)該是不斷增大的,因此在本發(fā)明中僅包括對(duì)datanode的增加。
具體地,
所述datanode,用于向namenode發(fā)送心跳連接數(shù)據(jù);
所述namenode,用于接收各個(gè)datanode的心跳連接數(shù)據(jù),并根據(jù)datanode的心跳連接數(shù)據(jù)中生成所述datanode的容量數(shù)據(jù),將所述datanode的容量數(shù)據(jù)發(fā)送至監(jiān)控中心;
所述監(jiān)控中心,具體用于接收所述datanode的容量數(shù)據(jù),并將所述datanode的容量數(shù)據(jù)與預(yù)設(shè)容量閾值進(jìn)行比對(duì);如果datanode的容量數(shù)據(jù)大于所述容量閾值,則生成datanode生成指令,發(fā)送給云平臺(tái)資源池;
所述云平臺(tái)資源池,具體用于接收所述datanode生成指令,并根據(jù)所述datanode生成指令創(chuàng)建新的datanode。
datanode結(jié)點(diǎn)基于hdfs文件共享存儲(chǔ),單獨(dú)拿出來,形成自己的獨(dú)立服務(wù)結(jié)點(diǎn)。regionserver需要較高的配置,datanode不需要,放在一個(gè)配置不是太高的服務(wù)器上,節(jié)約開支。具體創(chuàng)建datanode結(jié)點(diǎn)過程和創(chuàng)建regionserver的過程基本一致,只需要把上面的regionserver鏡像換成datanode鏡像系統(tǒng)即可,配置的大小根據(jù)實(shí)際的現(xiàn)有硬件來配置即可。一般情況下,datanode的數(shù)量會(huì)越來越多,如果在正常工作的情況下,不會(huì)減少datanode結(jié)點(diǎn),這也符合數(shù)據(jù)庫數(shù)據(jù)越來越多,容量越來越大的規(guī)律。如果datanode結(jié)點(diǎn)出現(xiàn)損壞情況,由于在其它datanode結(jié)點(diǎn)上有備份,hmaster會(huì)自動(dòng)恢復(fù)數(shù)據(jù),要做的就是更換一臺(tái)新的datanode結(jié)點(diǎn)服務(wù)器。
datanode是hdfs的一個(gè)結(jié)點(diǎn),該節(jié)點(diǎn)上運(yùn)行著包含有datanode程序的系統(tǒng)。這里,需要先做好一個(gè)配置好的datanode鏡像系統(tǒng),當(dāng)需要增加datanode時(shí),只需要通過云平臺(tái)資源池的api,用該鏡像創(chuàng)建一個(gè)實(shí)例即可。
另外,在本發(fā)明實(shí)施例所提供的云數(shù)據(jù)庫系統(tǒng)中,所述云平臺(tái)資源池,還用于在創(chuàng)建新的datanode之后,向監(jiān)控中心返回datanode創(chuàng)建信息;
所述監(jiān)控中心,還用于接收datanode創(chuàng)建信息,并根據(jù)所述datanode創(chuàng)建信息生成datanode配置信息,發(fā)送給新創(chuàng)建的datanode,以實(shí)現(xiàn)對(duì)新創(chuàng)建的datanode的配置;
新創(chuàng)建的所述datanode,還根據(jù)所述datanode配置信息進(jìn)行配置,并在配置完成后,向所述namenode發(fā)送心跳連接數(shù)據(jù);
所述namenode,還用于接收新創(chuàng)建的datanode所發(fā)送的心跳連接數(shù)據(jù),并根據(jù)新創(chuàng)建的datanode所發(fā)送的心跳連接數(shù)據(jù),將新創(chuàng)建的datanode加入到數(shù)據(jù)庫集群中。
另外,本發(fā)明實(shí)施例所提供的云數(shù)據(jù)庫系統(tǒng)中,所述數(shù)據(jù)庫集群,還用于在云平臺(tái)資源池分配資源后,對(duì)資源執(zhí)行負(fù)載均衡。
具體地:datanode負(fù)載均衡的具體過程為:
1、舊的datanode每隔預(yù)設(shè)時(shí)間,向namenode發(fā)送心跳數(shù)據(jù);所述心跳數(shù)據(jù)包括狀態(tài)信息以及名稱;
2、新的datanode向namenode發(fā)送心跳數(shù)據(jù);所述心跳數(shù)據(jù)包括狀態(tài)信息以及名稱;
3、namenode將信息存到元數(shù)據(jù)中,通知負(fù)載均衡服務(wù),給新增結(jié)點(diǎn)添加任務(wù);
4、負(fù)載均衡服務(wù)獲取namenode節(jié)點(diǎn)所發(fā)送的datanode數(shù)據(jù)分析報(bào)告,所述數(shù)據(jù)分析報(bào)告中包括磁盤使用信息以及位置信息;
5、均衡服務(wù)根據(jù)磁盤使用信息確定要遷移的數(shù)據(jù),根據(jù)結(jié)點(diǎn)位置信息,確定待遷移datanode節(jié)點(diǎn)以及要遷移的路徑;
6、均衡服務(wù)向?qū)?yīng)的datanode節(jié)點(diǎn)發(fā)送遷移指令,該遷移指令中攜帶有路徑信息以及要移動(dòng)的數(shù)據(jù)信息;
7、datanode接收到遷移指令后,根據(jù)遷移指令,將數(shù)據(jù)信息對(duì)應(yīng)的待遷移數(shù)據(jù)塊,按照遷移路徑進(jìn)行復(fù)制,并在復(fù)制完成之后刪除本地保存的待遷移數(shù)據(jù)塊;
8、原有datanode向負(fù)載均衡服務(wù)確認(rèn)數(shù)據(jù)已經(jīng)遷移完成,進(jìn)行其它數(shù)據(jù)塊遷移任務(wù),直至完成整個(gè)負(fù)載均衡過程。
具體地,根據(jù)下述步驟確定待遷移datanode節(jié)點(diǎn)以及要遷移的路徑:
1、根據(jù)所有datanode節(jié)點(diǎn)的所述磁盤存儲(chǔ)值計(jì)算集群存儲(chǔ)平均值;
2、根據(jù)集群存儲(chǔ)平均值以及預(yù)設(shè)的集群閾值,將所有datanode節(jié)點(diǎn)劃分到over、above、below、under四個(gè)分組中;
其中,over分組中的datanode節(jié)點(diǎn)存儲(chǔ)值滿足:
存儲(chǔ)值>平均值+集群閾值;
above分組中的datanode節(jié)點(diǎn)存儲(chǔ)值滿足:
平均值+集群閾值>存儲(chǔ)值>平均值;
below分組中的datanode節(jié)點(diǎn)存儲(chǔ)值滿足:
平均值>存儲(chǔ)值>平均值-集群閾值
under分組中的datanode節(jié)點(diǎn)存儲(chǔ)值滿足:
平均值-集群閾值>存儲(chǔ)值;
3、將over分組中的datanode節(jié)點(diǎn)作為起始節(jié)點(diǎn),將under分組中的datanode節(jié)點(diǎn)作為目的節(jié)點(diǎn);
4、起始節(jié)點(diǎn)到目的節(jié)點(diǎn)即為遷移路徑。
具體地:regionserver負(fù)載均衡的具體過程為:
1、hmaster遍歷集群內(nèi)每個(gè)regionserver上的負(fù)載情況,獲取每個(gè)regionserver中region的數(shù)量;
2、根據(jù)regionserver數(shù)量以及region的數(shù)量,計(jì)算負(fù)載最大值和負(fù)載最小值;
3、根據(jù)每個(gè)regionserver中region的數(shù)量,將regionserver進(jìn)行排序;
4、按照從大到小的順序,依次判斷regionserver中region的數(shù)量是否大于負(fù)載最大值,直至判斷的結(jié)果為否;
5、如果判斷的結(jié)果為是,則將region的數(shù)量與負(fù)載最大值的差值作為要遷移的region數(shù)量,并將該regionserver作為遷移的源地址;
6、按照從小到大的順序,依次判斷regionserver中region的數(shù)量是否小于負(fù)載最小值,直至判斷的結(jié)果為否;
7、如果判斷的結(jié)果為是,則將該regionserver作為數(shù)據(jù)遷移目的地址,并計(jì)算能夠遷移的最大region數(shù)量;
8、根據(jù)要遷移的region數(shù)量以及對(duì)應(yīng)的源地址、目的地址以及與目的地址對(duì)應(yīng)的能夠遷移的最大region數(shù)量確定遷移路線;
9、根據(jù)遷移路線進(jìn)行數(shù)據(jù)遷移。
另外,根據(jù)遷移路線完成數(shù)據(jù)遷移后,還包括:
1、每個(gè)regionserver中region的數(shù)量,將regionserver進(jìn)行排序;
2、按照從小到大的順序,依次判斷regionserver中region的數(shù)量是否小于負(fù)載最小值,直至判斷的結(jié)果為否;
3、如果判斷結(jié)果為是,則將該regionserver作為饑餓服務(wù)器;
4、從負(fù)載最大的regionserver節(jié)點(diǎn)開始,依次摘取預(yù)設(shè)數(shù)量的region遷移到饑餓服務(wù)器中,直至饑餓服務(wù)器中的region的數(shù)量不小于負(fù)載最小值。
本發(fā)明又一實(shí)施例還提供一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,參見圖3所示,該方法的執(zhí)行主體為監(jiān)控中心,本發(fā)明實(shí)施例所提供的云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法包括:
s301:獲取數(shù)據(jù)庫集群的負(fù)載數(shù)據(jù);
s302:根據(jù)所述負(fù)載數(shù)據(jù),判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源;
s303:在需要調(diào)整資源后,與云平臺(tái)資源池進(jìn)行交互,以釋放或者增加數(shù)據(jù)庫集群內(nèi)的資源;
本發(fā)明實(shí)施例提供的云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,庫集群會(huì)向監(jiān)控中心提供負(fù)載數(shù)據(jù)。負(fù)載包括兩方面的內(nèi)容,其一是當(dāng)前云數(shù)據(jù)庫系統(tǒng)的容量負(fù)載,其二是當(dāng)前數(shù)據(jù)庫訪問負(fù)載。監(jiān)控中心在接收到數(shù)據(jù)庫集群發(fā)送的負(fù)載數(shù)據(jù)之后,會(huì)根據(jù)該負(fù)載數(shù)據(jù)判斷是否需要調(diào)整數(shù)據(jù)庫集群內(nèi)的資源;在需要調(diào)整資源的時(shí)候,通過與云平臺(tái)資源池進(jìn)行交互,來進(jìn)行資源的釋放或者增加,這種云數(shù)據(jù)庫系統(tǒng)根據(jù)云數(shù)據(jù)庫當(dāng)前運(yùn)行的具體狀態(tài)來動(dòng)態(tài)的調(diào)整資源的分配,滿足需求量變化的情況。
參見圖4所示,本發(fā)明實(shí)施例還提供另外一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,所述負(fù)載數(shù)據(jù)包括:各個(gè)regionserver的性能數(shù)據(jù);
根據(jù)下述步驟調(diào)整數(shù)據(jù)庫集群內(nèi)的資源:
s401:獲取hmaster所發(fā)送的各個(gè)regionserver的性能數(shù)據(jù);
s402:將各個(gè)regionserver的性能數(shù)據(jù)與性能最大閾值進(jìn)行比對(duì);
s403:如果所述regionserver的性能數(shù)據(jù)大于所述性能最大閾值,則云平臺(tái)資源池發(fā)送regionserver創(chuàng)建指令,以使得云平臺(tái)資源池創(chuàng)建新的regionserver;
s404:如果所述regionserver的性能數(shù)據(jù)小于所述性能最小閾值,則向云平臺(tái)資源池發(fā)送regionserver消除指令,以使得云平臺(tái)資源池對(duì)進(jìn)行了數(shù)據(jù)遷移的regionserver進(jìn)行消除。
參見圖5所示,本發(fā)明實(shí)施例還提供另外一種云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法,所述數(shù)據(jù)庫集群的負(fù)載數(shù)據(jù)包括:datanode的容量數(shù)據(jù);
根據(jù)下述步驟調(diào)整數(shù)據(jù)庫集群內(nèi)的資源:
s501:獲取namenode所發(fā)送的datanode的容量數(shù)據(jù);
s502:將所述datanode的容量數(shù)據(jù)與預(yù)設(shè)容量閾值進(jìn)行比對(duì);
s503:如果datanode的容量數(shù)據(jù)大于所述容量閾值,則向云平臺(tái)資源池發(fā)送datanode生成指令,以使得所述云平臺(tái)資源池創(chuàng)建新的datanode。
另外,參見圖6所示,本發(fā)明還提供一種數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的實(shí)施例,具體包括:
s601:hmaster向所述監(jiān)控中心發(fā)送各個(gè)regionserver的性能數(shù)據(jù);
s602:監(jiān)控中心將各個(gè)regionserver的性能數(shù)據(jù)與性能最大閾值進(jìn)行比對(duì);
s603:監(jiān)控中心在所述regionserver的性能數(shù)據(jù)大于所述性能最大閾值時(shí),生成并向所述云平臺(tái)資源池發(fā)送regionserver創(chuàng)建指令;
s604:云平臺(tái)資源池根據(jù)所述regionserver創(chuàng)建指令創(chuàng)建新的regionserver;
s605:云平臺(tái)資源池,在創(chuàng)建新的regionserver后,生成創(chuàng)建反饋信息返回至監(jiān)控中心;
s606:監(jiān)控中心根據(jù)創(chuàng)建反饋信息生成更新推送信息,并將所述更新推送信息發(fā)送至hmaster;
s607:新創(chuàng)建的所述regionserver,向hmaster發(fā)送配置信息;
s608:hmaster根據(jù)所述更新推送信息以及所述配置信息,將新創(chuàng)建的所述regionserver加入到數(shù)據(jù)庫集群;
s609:監(jiān)控中心在所述regionserver的性能數(shù)據(jù)小于所述性能最小閾值時(shí),向regionserver發(fā)送數(shù)據(jù)遷移指令;
s610:regionserver在接收數(shù)據(jù)遷移指令,并根據(jù)所述數(shù)據(jù)遷移指令進(jìn)行數(shù)據(jù)遷移;
s611:regionserver在完成數(shù)據(jù)錢以后,向監(jiān)控中心發(fā)送遷移反饋信息;
s612:監(jiān)控中心根據(jù)遷移反饋信息,生成關(guān)機(jī)指令,發(fā)送給regionserver;
s613:regionserver根據(jù)關(guān)機(jī)指令休眠或者關(guān)機(jī);
s614:監(jiān)控中心向在所述regionserver的性能數(shù)據(jù)小于所述性能最小閾值時(shí),向所述云平臺(tái)資源池發(fā)送regionserver消除指令;
s615:云平臺(tái)資源池在接收到regionserver消除指令后,消除進(jìn)行數(shù)據(jù)遷移后的regionserver。
s616:云平臺(tái)資源池在消除了數(shù)據(jù)遷移后的regionserver后,向監(jiān)控中心返回消除反饋指令;
s617:監(jiān)控中心根據(jù)消除反饋指令,生成regionserver消除信息,發(fā)送給hmaster;
s618:hmaster根據(jù)regionserver消除信息,將對(duì)應(yīng)的regionserver從數(shù)據(jù)庫集群內(nèi)刪除。
需要注意的是,上述s610-s618中的部分步驟是需要并行執(zhí)行的,或者是需要其他步驟的激活才能夠進(jìn)行的。
另外,參見圖7所示,本發(fā)明還提供一種數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的實(shí)施例,具體包括:
s701:所有的datanode向namenode發(fā)送心跳連接數(shù)據(jù);
s702:namenode,用于接收各個(gè)datanode的心跳連接數(shù)據(jù),并根據(jù)datanode的心跳連接數(shù)據(jù)中生成所述datanode的容量數(shù)據(jù);
s703:namenode將所述datanode的容量數(shù)據(jù)發(fā)送至監(jiān)控中心;
s704:監(jiān)控中心將所述datanode的容量數(shù)據(jù)與預(yù)設(shè)容量閾值進(jìn)行比對(duì);
s705:監(jiān)控中心在datanode的容量數(shù)據(jù)大于所述容量閾值時(shí),生成datanode生成指令,發(fā)送給云平臺(tái)資源池;
s706:平臺(tái)資源池根據(jù)所述datanode生成指令創(chuàng)建新的datanode。
s707:云平臺(tái)資源池在創(chuàng)建新的datanode之后,向監(jiān)控中心返回datanode創(chuàng)建信息;
s708:監(jiān)控中心根據(jù)所述datanode創(chuàng)建信息生成datanode配置信息,發(fā)送給新創(chuàng)建的datanode;
s709:新創(chuàng)建的所述datanode,根據(jù)所述datanode配置信息進(jìn)行配置,并在配置完成后,向所述namenode發(fā)送心跳連接數(shù)據(jù);
s710:namenode根據(jù)新創(chuàng)建的datanode所發(fā)送的心跳連接數(shù)據(jù),將新創(chuàng)建的datanode加入到數(shù)據(jù)庫集群中。
本發(fā)明實(shí)施例所提供的一種云數(shù)據(jù)庫系統(tǒng)以及云數(shù)據(jù)庫資源動(dòng)態(tài)調(diào)整方法的計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)了程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見方法實(shí)施例,在此不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的方法過程具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)系統(tǒng),在此不再贅述。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。