本發(fā)明涉及分布式存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法和裝置。
背景技術(shù):
Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的開源軟件框架。Hadoop的存儲(chǔ)核心是分布式文件系統(tǒng)(HDFS)。HDFS適合運(yùn)行在通用的硬件上,并需要部署在大量設(shè)備上,以此來支持大規(guī)模的數(shù)據(jù)集和高吞吐量的數(shù)據(jù)訪問,并通過可以分布在不同設(shè)備上的多個(gè)副本數(shù)來實(shí)現(xiàn)高容錯(cuò)性。HDFS所部署的大量設(shè)備組成Hadoop集群。
然而,目前Hadoop系統(tǒng)中的節(jié)點(diǎn)數(shù)都是在使用初期即定義,并不能根據(jù)實(shí)際的數(shù)據(jù)量進(jìn)行動(dòng)態(tài)減少或增加,造成不必要的節(jié)點(diǎn)設(shè)備資源浪費(fèi)或Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)資源不足的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的主要技術(shù)問題是,提供一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法和裝置,能夠解決目前Hadoop系統(tǒng)中節(jié)點(diǎn)數(shù)不能動(dòng)態(tài)調(diào)整造成的節(jié)點(diǎn)設(shè)備資源浪費(fèi)或Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)設(shè)備資源不足的技術(shù)問題。
為解決上述技術(shù)問題,本發(fā)明提供一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法,包括如下步驟:
接收集群中各節(jié)點(diǎn)設(shè)備發(fā)送的自身當(dāng)前的硬件使用狀況信息,所述節(jié)點(diǎn)設(shè)備為已啟動(dòng)的節(jié)點(diǎn)設(shè)備;
根據(jù)接收到的硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息;
根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量的步驟包括:
根據(jù)所述指標(biāo)信息判斷所述集群的設(shè)備資源使用率是過高還是過低,
若所述集群的設(shè)備資源使用率過低,則減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
若所述集群的設(shè)備資源使用率過高,則增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量的步驟包括:
控制未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
所述減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量的步驟包括:
控制所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述控制未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量的步驟包括:
通過未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI(Intelligent Platform Management Interface,智能管理平臺(tái)接口)控制所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
所述控制所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量的步驟包括:
通過所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述通過未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群的步驟包括:
向所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI(智能平臺(tái)管理接口)發(fā)送開機(jī)指令以使未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群;
所述通過所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉的步驟包括:
向所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI發(fā)送關(guān)機(jī)指令以使所述已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉。
進(jìn)一步地,所述指標(biāo)信息包括至少一個(gè)指標(biāo),所述根據(jù)所述指標(biāo)信息判斷所述集群的設(shè)備資源使用率是過高還是過低的步驟包括:
將每項(xiàng)指標(biāo)的值與各自對(duì)應(yīng)的預(yù)設(shè)下限閾值和各自對(duì)應(yīng)的預(yù)設(shè)上限閾值進(jìn)行比較;
根據(jù)比較結(jié)果判斷所述集群的設(shè)備資源使用率是過高還是過低。
進(jìn)一步地,所述根據(jù)比較結(jié)果判斷所述集群的設(shè)備資源使用率是過高還是過低的步驟包括:
當(dāng)存在至少一項(xiàng)指標(biāo)的值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)小于各自對(duì)應(yīng)的預(yù)設(shè)下限閾值時(shí),則判定所述集群的設(shè)備資源使用率過低;
當(dāng)存在至少一項(xiàng)指標(biāo)的值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)大于各自對(duì)應(yīng)的預(yù)設(shè)上行閾值時(shí),則判定所述集群的設(shè)備資源使用率過高。
進(jìn)一步地,所述硬件使用狀況信息包括:設(shè)備磁盤空間使用率、設(shè)備當(dāng)前CPU使用率和設(shè)備當(dāng)前內(nèi)存使用率的至少一種;
對(duì)應(yīng)地所述指示信息包括:集群內(nèi)總磁盤空間使用率、集群內(nèi)設(shè)備平均CPU使用率和集群內(nèi)設(shè)備平均內(nèi)存使用率中的至少一種。
同樣為了解決上述的技術(shù)問題,本發(fā)明還提供了另一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào) 整方法,所述方法應(yīng)用于系統(tǒng)集群中的節(jié)點(diǎn)設(shè)備,包括如下步驟:
在所述節(jié)點(diǎn)設(shè)備啟動(dòng)后,采集所述節(jié)點(diǎn)設(shè)備自身的硬件使用狀況信息;
將采集到的硬件使用狀況信息發(fā)送給出去,以供接收端根據(jù)硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息,然后根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述將采集到的硬件使用狀況信息發(fā)送給出去的步驟包括:
通過所述系統(tǒng)使用的JMX(Java Management Extensions,Java管理擴(kuò)展)框架將采集到的硬件使用狀況信息發(fā)送給出去。
同樣為了解決上述的技術(shù)問題,本發(fā)明還提供了一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置,包括:接收模塊、分析模塊和處理模塊;
所述接收模塊,用于接收集群中各節(jié)點(diǎn)設(shè)備發(fā)送的自身當(dāng)前的硬件使用狀況信息,所述節(jié)點(diǎn)設(shè)備為已啟動(dòng)的節(jié)點(diǎn)設(shè)備;
所述分析模塊,用于根據(jù)接收到的硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息;
所述處理模塊,用于根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述處理模塊包括:判斷模塊和調(diào)整模塊;
所述判斷模塊,用于根據(jù)所述指標(biāo)信息判斷所述集群的設(shè)備資源使用率是過高還是過低;
所述調(diào)整模塊,用于:
在所述判斷模塊判斷所述集群的設(shè)備資源使用率過低時(shí),控制所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
在所述判斷模塊判斷所述集群的設(shè)備資源使用率過高時(shí),控制未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述調(diào)整模塊,用于:
通過未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
通過所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
同樣為了解決上述的技術(shù)問題,本發(fā)明還提供了另一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置,所述調(diào)整裝置應(yīng)用于系統(tǒng)集群中的節(jié)點(diǎn)設(shè)備,包括:采集模塊和發(fā)送模塊;
所述采集模塊,用于在所述節(jié)點(diǎn)設(shè)備啟動(dòng)后,采集所述節(jié)點(diǎn)設(shè)備自身的硬件使用狀況信息;
所述發(fā)送模塊,用于將采集到的硬件使用狀況信息發(fā)送給出去,以供接收端根據(jù)硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息,然后根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
進(jìn)一步地,所述調(diào)整裝置,還包括IPMI和控制模塊;
所述IPMI,用于接收外部傳輸?shù)年P(guān)機(jī)指令并將所述關(guān)機(jī)指令傳輸給所述控制模塊;
所述控制模塊,用于在接收到所述關(guān)機(jī)指令后關(guān)閉所述節(jié)點(diǎn)設(shè)備。
本發(fā)明的有益效果是:
本發(fā)明提供了一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法和裝置,其中本發(fā)明提供的系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法,包括:接收集群中各節(jié)點(diǎn)設(shè)備發(fā)送的自身當(dāng)前的硬件使用狀況信息;根據(jù)接收到的硬件使用信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息;根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;本發(fā)明的調(diào)整方法可以根據(jù)集群當(dāng)前的使用狀態(tài)動(dòng)態(tài)地調(diào)整Hadoop集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量,滿足集群對(duì)節(jié)點(diǎn)設(shè)備資源的要求,從而可以提高Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)設(shè)備的利用率減少不需要的資源浪費(fèi),以及解決Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)設(shè)備資源 不足的技術(shù)問題。
附圖說明
圖1為本發(fā)明實(shí)施例一提供的一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法的流程示意圖;
圖2為本發(fā)明實(shí)施例一提供的另一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法的流程示意圖;
圖3為本發(fā)明實(shí)施例二提供的一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法的流程示意圖;
圖4為本發(fā)明實(shí)施例三提供的一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例三提供的另一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例四供的一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例三提供的另一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例四提供的一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面通過具體實(shí)施方式結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
考慮到目前Hadoop系統(tǒng)中節(jié)點(diǎn)數(shù)不能動(dòng)態(tài)調(diào)整造成的節(jié)點(diǎn)設(shè)備資源浪費(fèi)或Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)資源不足的技術(shù)問題,本發(fā)明提供了一種系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法和裝置,可以根據(jù)集群當(dāng)前的使用狀態(tài)動(dòng)態(tài)地調(diào)整系統(tǒng)集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量,下面以對(duì)Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)為例來介紹本發(fā)明的調(diào)整方法和裝置。應(yīng)當(dāng)理解的是:本實(shí)施例方法和裝置不僅限于對(duì)Hadoop系統(tǒng)內(nèi)的節(jié)點(diǎn)數(shù)進(jìn)行動(dòng)態(tài)調(diào)整,還可以對(duì)其他系統(tǒng)內(nèi)的節(jié)點(diǎn)數(shù)據(jù)進(jìn)行動(dòng)態(tài)調(diào)整。
實(shí)施例一:
本實(shí)施例提供了一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法,如圖1所示,可以包括如下步驟:
步驟101:接收集群中各節(jié)點(diǎn)設(shè)備發(fā)送的自身當(dāng)前的硬件使用狀況信息,所述節(jié)點(diǎn)設(shè)備為已啟動(dòng)的節(jié)點(diǎn)設(shè)備。
本實(shí)施例中集群為Hadoop集群,在集群中的各節(jié)點(diǎn)設(shè)備需要采集自身的硬件使用狀況信息,然后發(fā)送出去。在本實(shí)施例中Hadoop集群中的各節(jié)點(diǎn)設(shè)備均為已啟動(dòng)的節(jié)點(diǎn)設(shè)備,各節(jié)點(diǎn)設(shè)備在啟動(dòng)后均安裝HDFS組件,以使得Hadoop可以進(jìn)行數(shù)據(jù)訪問等處理。
優(yōu)先地,本實(shí)施例中硬件使用狀態(tài)信息可以包括:設(shè)備當(dāng)前磁盤空間使用率(即設(shè)備當(dāng)前磁盤空間使用百分比)、設(shè)備當(dāng)前CPU使用率(及設(shè)備當(dāng)前CPU使用百分比)和設(shè)備當(dāng)前內(nèi)存使用率(即設(shè)備當(dāng)前內(nèi)存使用百分比)的至少一種。
在本實(shí)施例中接收節(jié)點(diǎn)設(shè)備發(fā)送的硬件使用狀況信息的方法可以為多種,例如可以通過網(wǎng)絡(luò)接收,具體地通過TCP/IP(傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議)方式與節(jié)點(diǎn)設(shè)備通訊接收節(jié)點(diǎn)設(shè)備采集到的硬件使用狀況信息。
步驟102:根據(jù)接收到的硬件使用信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息。
具體地,本實(shí)施例中可以對(duì)各節(jié)點(diǎn)上發(fā)送的硬件使用狀況信息進(jìn)行計(jì)算得 到描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息。本實(shí)施例中集群是由節(jié)點(diǎn)設(shè)備組成的集合,因此,本實(shí)施例中描述集群當(dāng)前使用狀態(tài)的指示信息可以由集群中設(shè)備的硬件使用信息來獲取,該指示信息可以與集群中節(jié)點(diǎn)設(shè)備的硬件使用狀況信息對(duì)應(yīng),例如當(dāng)指標(biāo)信息為集群內(nèi)總磁盤空間使用率時(shí),那個(gè)集群內(nèi)的節(jié)點(diǎn)設(shè)備采集的硬件使用狀況信息可以包括該設(shè)備磁盤空間使用率。
優(yōu)先地,本實(shí)施例中指標(biāo)信息可以包括:集群內(nèi)總磁盤空間使用率(即集群內(nèi)總磁盤空間使用百分比)、集群內(nèi)設(shè)備平均CPU使用率(集群內(nèi)設(shè)備平均CPU使用百分比)和集群內(nèi)設(shè)備平均內(nèi)存使用率(集群內(nèi)設(shè)備平均內(nèi)存百分比)中的至少一種。
步驟103:根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
本實(shí)施例方法根據(jù)所述指標(biāo)信息可以減少或增加集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;本實(shí)施例中調(diào)整集群內(nèi)節(jié)點(diǎn)設(shè)備已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量可簡稱為調(diào)整集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量,因此,本文所述的調(diào)整(例如增加或者減少)集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量均指的是調(diào)整(例如增加或者減少)集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
本實(shí)施例方法可以根據(jù)指標(biāo)信息來判斷集群的設(shè)備資源使用率是過高還是否過低,
若所述集群內(nèi)設(shè)備資源使用率過低,則減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
若所述集群內(nèi)設(shè)備資源使用率過高,則增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
優(yōu)先地,當(dāng)本實(shí)施例中指標(biāo)信息包括至少一個(gè)指標(biāo)時(shí),本實(shí)施例中根據(jù)所述指標(biāo)信息判斷所述集群的設(shè)備資源使用率是過高還是過低的步驟包括:
將每項(xiàng)指標(biāo)的值與各自對(duì)應(yīng)的預(yù)設(shè)下限閾值和各自對(duì)應(yīng)的預(yù)設(shè)上限閾值進(jìn)行比較;
根據(jù)比較結(jié)果判斷所述集群的設(shè)備資源使用率是過高還是過低。
具體地,所述根據(jù)比較結(jié)果判斷所述集群的設(shè)備資源使用率是過高還是過低的步驟包括:
當(dāng)存在至少一項(xiàng)指標(biāo)的值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)小于各自對(duì)應(yīng)的預(yù)設(shè)下限閾值時(shí),則判定所述集群的設(shè)備資源使用率過低;
當(dāng)存在至少一項(xiàng)指標(biāo)的值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)大于各自對(duì)應(yīng)的預(yù)設(shè)上行閾值時(shí),則判定所述集群的設(shè)備資源使用率過高。
本實(shí)施例方法可以當(dāng)指標(biāo)對(duì)應(yīng)的指標(biāo)值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)小于對(duì)應(yīng)的預(yù)設(shè)下限閾值時(shí),則判定所述集群的設(shè)備資源使用率過低;例如集群內(nèi)設(shè)備平均CPU使用率在1分鐘內(nèi)持續(xù)大于預(yù)設(shè)上行閾值,則判定所述集群的設(shè)備資源使用率過低。
當(dāng)所述指標(biāo)對(duì)應(yīng)的指值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)大于對(duì)應(yīng)的預(yù)設(shè)上行閾值時(shí),則判定所述集群的設(shè)備資源使用率過高。例如集群內(nèi)設(shè)備平均CPU使用率在1分鐘內(nèi)持續(xù)大于預(yù)設(shè)上行閾值,判定所述集群的設(shè)備資源使用率過高。
當(dāng)然本實(shí)施例方法也可以不考慮時(shí)間因素,在將每項(xiàng)指標(biāo)的值與各自對(duì)應(yīng)的預(yù)設(shè)下限閾值和各自對(duì)應(yīng)的預(yù)設(shè)上限閾值進(jìn)行比較之后,如果存在至少一項(xiàng)指標(biāo)的值小于各自對(duì)應(yīng)的預(yù)設(shè)下限閾值時(shí),則判定所述集群的設(shè)備資源使用率過低;如果存在至少一項(xiàng)指標(biāo)的值大于各自對(duì)應(yīng)的預(yù)設(shè)上行閾值時(shí),則判定所述集群的設(shè)備資源使用率過高。
在指標(biāo)信息包括:多個(gè)指標(biāo)時(shí),例如包括:集群內(nèi)總磁盤空間使用率(即集群內(nèi)總磁盤空間使用百分比)、集群內(nèi)設(shè)備平均CPU使用率(集群內(nèi)設(shè)備平均CPU使用百分比)和集群內(nèi)設(shè)備平均內(nèi)存使用率;可以將各個(gè)指標(biāo)的值與各自對(duì)應(yīng)的預(yù)設(shè)下限閾值進(jìn)行比較;如果至少一個(gè)指標(biāo)的值小于各自對(duì)應(yīng)的預(yù)設(shè)下限 閾值時(shí)(例如集群內(nèi)總磁盤空間使用率小于預(yù)設(shè)下限閾值和/或集群內(nèi)設(shè)備平均內(nèi)存使用流率小于預(yù)設(shè)下限閾值時(shí)),則判定集群的設(shè)備資源使用率過低,此時(shí)存在資源浪費(fèi)的情況,需要減少集群內(nèi)的節(jié)點(diǎn)設(shè)備減少資源浪費(fèi);如果至少一個(gè)指標(biāo)的值大于預(yù)設(shè)的上限閾值時(shí)(例如集群內(nèi)總磁盤空間使用率大于預(yù)設(shè)上限閾值和/或集群內(nèi)設(shè)備平均內(nèi)存使用流率大于預(yù)設(shè)上限閾值時(shí)),則判定所述集群的設(shè)備資源使用率過高,此時(shí)存在設(shè)備資源不足的風(fēng)險(xiǎn),需要增加集群內(nèi)的節(jié)點(diǎn)設(shè)備。
本實(shí)施例中在指標(biāo)信息包括多個(gè)指標(biāo)時(shí),可以預(yù)先設(shè)置一個(gè)統(tǒng)一的下限閾值和上限閾值,當(dāng)然,也可以對(duì)應(yīng)不同指標(biāo)設(shè)置不同的上下限閾值。
在本實(shí)施例中增加所述集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量的優(yōu)先方式包括:控制未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量。本實(shí)施例可以通過未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量。本實(shí)施例中未啟動(dòng)的節(jié)點(diǎn)設(shè)備可以為集群內(nèi)未啟動(dòng)的節(jié)點(diǎn)設(shè)備也可以為集群外未啟動(dòng)的節(jié)點(diǎn)設(shè)備。
在本實(shí)施例中減少所述集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量的優(yōu)先方式包括:控制所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量。具體地,通過所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI(智能平臺(tái)管理接口)控制所述已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量。
本實(shí)施例的調(diào)整方法可以根據(jù)集群當(dāng)前的使用狀態(tài)動(dòng)態(tài)地調(diào)整Hadoop集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量,當(dāng)集合的設(shè)備資源使用率過高時(shí),在集群中增加節(jié)點(diǎn)設(shè)備,避免Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)資源不足,當(dāng)集合的設(shè)備資源使用率過低時(shí),減少集群中的節(jié)點(diǎn)設(shè)備避免不需要的設(shè)備資源浪費(fèi)。
根據(jù)上述的描述,本實(shí)施例的Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法,如圖2所 示,可以包括如下步驟:
步驟201:接收集群中各節(jié)點(diǎn)設(shè)備發(fā)送的自身當(dāng)前的硬件使用狀況信息,所述節(jié)點(diǎn)設(shè)備為已啟動(dòng)的節(jié)點(diǎn)設(shè)備。
具體地,可以接收節(jié)點(diǎn)設(shè)備通過JMX框架方式傳輸?shù)牡挠布褂脿顩r信息,此時(shí)接收到的信息為JMX信息。本實(shí)施例方法可以通過多種方式接收節(jié)點(diǎn)設(shè)備傳輸?shù)挠布褂脿顩r信息,例如通過以網(wǎng)絡(luò)來接收J(rèn)MX信息,那么為獲取硬件使用狀況信息,首先需要安裝網(wǎng)絡(luò)協(xié)議對(duì)接收到JMX信息進(jìn)行處理(解析、CRC校驗(yàn)、計(jì)算、處理等)例如還原為原始的硬件使用狀況信息。
另外,考慮到發(fā)送數(shù)據(jù)的設(shè)備可能眾多,為了保證處理數(shù)據(jù)的實(shí)時(shí)性,系統(tǒng)會(huì)使用多線程技術(shù),保證數(shù)據(jù)能夠被快速處理,防止緩沖區(qū)堆滿溢出、丟失數(shù)據(jù),從而達(dá)到實(shí)時(shí)處理的要求。
步驟202:根據(jù)接收到的硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息,所述指標(biāo)信息包括至少一個(gè)指標(biāo)。
例如,當(dāng)集群內(nèi)節(jié)點(diǎn)設(shè)備發(fā)送的硬件使用狀況信息包括:設(shè)備磁盤空間使用率、設(shè)備當(dāng)前CPU使用率和設(shè)備當(dāng)前內(nèi)存使用率時(shí);
本步驟可以根據(jù)硬件使用狀況信息計(jì)算出用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息,具體包括:集群內(nèi)總磁盤空間使用率、集群內(nèi)設(shè)備平均CPU使用率和集群內(nèi)設(shè)備平均內(nèi)存使用率。
步驟203:將每項(xiàng)指標(biāo)的值與各自對(duì)應(yīng)的預(yù)設(shè)下限閾值和各自對(duì)應(yīng)的預(yù)設(shè)上限閾值進(jìn)行比較。
步驟204:根據(jù)比較結(jié)果判斷所述集群的設(shè)備資源使用率是過高還是過低,若過高,執(zhí)行步驟205,若過低,則執(zhí)行步驟206。
例如,本步驟可以根據(jù)集群內(nèi)總磁盤空間使用率、集群內(nèi)設(shè)備平均CPU使用率和集群內(nèi)設(shè)備平均內(nèi)存使用率來判斷所述集群的設(shè)備資源使用率是過高還是過低。
具體地,以所有指標(biāo)均采用同一個(gè)的預(yù)設(shè)范圍為例,將每個(gè)指標(biāo)與預(yù)設(shè)范圍中的上限閾值和下限閾值進(jìn)行比較;當(dāng)存在至少一個(gè)指標(biāo)的值大于上限閾值時(shí),則判斷設(shè)備資源使用率過高,當(dāng)存在指標(biāo)的值小于下限閾值時(shí),則判斷設(shè)備資源使用率過低。
為更精確地判斷資源過高還是過低,本步驟可以將每個(gè)指標(biāo)與預(yù)設(shè)范圍中的上限閾值和下限閾值進(jìn)行比較,當(dāng)存在至少一個(gè)指標(biāo)的值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)大于上限閾值時(shí),則判定設(shè)備資源使用率過高,當(dāng)存在至少一個(gè)指標(biāo)的值在預(yù)設(shè)時(shí)間段內(nèi)持續(xù)小于下限閾值時(shí),則判定設(shè)備資源使用率過低。
步驟205:通過未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
本實(shí)施例方法中具體增加節(jié)點(diǎn)設(shè)備的數(shù)量可以為一個(gè)或者多個(gè),增加的數(shù)量可以預(yù)先設(shè)置,例如默認(rèn)增加一個(gè)或者根據(jù)指示信息來確定。
本步驟具體可以:向所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI發(fā)送開機(jī)指令以使未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群從而增加集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量。
在判斷集群的設(shè)備資源過高時(shí),需要增加集群內(nèi)的節(jié)點(diǎn)設(shè)備的數(shù)量,因此,本實(shí)施例可以讀取未啟動(dòng)的DataNode節(jié)點(diǎn)的IPMI地址列表,選擇預(yù)設(shè)數(shù)量節(jié)點(diǎn)設(shè)備的IPMI地址,通過http方式向?qū)?yīng)的設(shè)備發(fā)送開機(jī)命令,等待此節(jié)點(diǎn)設(shè)備啟動(dòng)后,記錄此設(shè)備的狀態(tài):將此節(jié)點(diǎn)從未啟動(dòng)的DataNode節(jié)點(diǎn)列表移動(dòng)至已啟動(dòng)節(jié)點(diǎn)列表;未啟動(dòng)的設(shè)備通過IPMI接收到開機(jī)命令,將開機(jī)命令傳遞給節(jié)點(diǎn)設(shè)備中的BMC(基板管理控制器)組件即可啟動(dòng),未啟動(dòng)的節(jié)點(diǎn)設(shè)備自動(dòng)啟動(dòng)并安裝HDFS組件,節(jié)點(diǎn)設(shè)備啟動(dòng)后根據(jù)系統(tǒng)開機(jī)啟動(dòng)項(xiàng)的配置,已經(jīng)安裝完成的HDFS組件會(huì)隨操作系統(tǒng)啟動(dòng)并加入集群,從而擴(kuò)容了Hadoop環(huán)境,通過自動(dòng)增加節(jié)點(diǎn)設(shè)備解決因原環(huán)境使用資源不足的問題。
步驟206:通過所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述已啟動(dòng)的節(jié) 點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
本實(shí)施例方法中具體減少節(jié)點(diǎn)設(shè)備的數(shù)量可為一個(gè)或多個(gè),減少的數(shù)量可以預(yù)先設(shè)置,例如默認(rèn)減少一個(gè)節(jié)點(diǎn)設(shè)備或者根據(jù)指示信息來確定。
本步驟具體可以為:向所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI發(fā)送關(guān)機(jī)指令以使所述已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉。
在判斷集群的設(shè)備資源使用率過低時(shí),需要減少集群內(nèi)的節(jié)點(diǎn)設(shè)備的數(shù)量,因此,本實(shí)施例可以讀取已啟動(dòng)的DataNode節(jié)點(diǎn)的IPMI地址列表,選擇預(yù)定數(shù)量的節(jié)點(diǎn)設(shè)備的IPMI地址,通過http方式向該設(shè)備發(fā)送關(guān)機(jī)命令,將關(guān)機(jī)命令傳遞給節(jié)點(diǎn)設(shè)備中的BMC組件即實(shí)現(xiàn)關(guān)機(jī);等待此節(jié)點(diǎn)設(shè)備關(guān)閉后,記錄此設(shè)備的狀態(tài):將此節(jié)點(diǎn)從已啟動(dòng)的DataNode節(jié)點(diǎn)列表移動(dòng)至未啟動(dòng)節(jié)點(diǎn)列表;通過IPMI將設(shè)備關(guān)閉后,即將此節(jié)點(diǎn)從Hadoop環(huán)境中暫時(shí)移除,從而解決環(huán)境使用節(jié)點(diǎn)資源浪費(fèi)的問題。
本實(shí)施例方法基于IPMI來自動(dòng)增減Hadoop系統(tǒng)中節(jié)點(diǎn)數(shù)的方法,由各個(gè)集群內(nèi)節(jié)點(diǎn)中的采集器獲取各自節(jié)點(diǎn)的性能數(shù)據(jù),通過JMX框架上報(bào)至系統(tǒng)中,由系統(tǒng)將這些信息進(jìn)行整合分析,根據(jù)分析的結(jié)果通過IPMI控制目標(biāo)設(shè)備的啟動(dòng)或停止,從而達(dá)到動(dòng)態(tài)自動(dòng)調(diào)整集群內(nèi)設(shè)備數(shù)量的目的。
實(shí)施例二:
如圖3所示,本實(shí)施例提供了一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整方法,應(yīng)用于Hadoop系統(tǒng)集群中的節(jié)點(diǎn)設(shè)備,包括如下步驟:
步驟301:在所述節(jié)點(diǎn)設(shè)備啟動(dòng)后,采集所述節(jié)點(diǎn)設(shè)備自身的硬件使用狀況信息。
本實(shí)施例方法在集群中節(jié)點(diǎn)設(shè)備啟動(dòng)后,可以采集節(jié)點(diǎn)設(shè)備的硬件使用狀 況信息,例如包括:設(shè)備磁盤空間使用率、設(shè)備當(dāng)前CPU使用率和設(shè)備當(dāng)前內(nèi)存使用率的至少一種。
優(yōu)先地,還可以對(duì)采集到的硬件使用狀況信息建立數(shù)據(jù)轉(zhuǎn)換表,基于該數(shù)據(jù)轉(zhuǎn)換表對(duì)硬件使用狀況信息進(jìn)行處理,形成數(shù)據(jù)表。
步驟302:將采集到的硬件使用狀況信息發(fā)送給出去,以供接收端根據(jù)硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息,然后根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
具體地,本步驟可以通過所述Hadoop系統(tǒng)使用的JMX框架將采集到的硬件使用狀況信息發(fā)送給出去。優(yōu)先地,可以通過網(wǎng)絡(luò)例如TCP/IP方式將JMX信息發(fā)送出去。
在實(shí)際操作中可以在開源的Hadoop框架中添加功能,使得HDFS組件可以執(zhí)行步驟301和302。
應(yīng)用本實(shí)施例的方法可以采集設(shè)備的硬件使用狀況信息以供管理端對(duì)集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量進(jìn)行動(dòng)態(tài)調(diào)整,解決目前Hadoop系統(tǒng)中節(jié)點(diǎn)數(shù)不能動(dòng)態(tài)調(diào)整造成的節(jié)點(diǎn)設(shè)備資源浪費(fèi)或Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)設(shè)備資源不足的技術(shù)問題。
優(yōu)先地,本實(shí)施例方法還可以包括:通過IPMI接收關(guān)機(jī)指令,在接收所述關(guān)機(jī)指令后關(guān)閉。在對(duì)集群內(nèi)節(jié)點(diǎn)設(shè)備數(shù)量進(jìn)行減少數(shù),可以通過IPMI接收關(guān)機(jī)指令,然后將該關(guān)機(jī)指令傳遞給節(jié)點(diǎn)設(shè)備內(nèi)的BMC組件,通過BMC組件實(shí)現(xiàn)關(guān)機(jī)。
實(shí)施例三:
如圖4所示,本實(shí)施例提供了一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置,包括:接收模塊401、分析模塊402和處理模塊403;
所述接收模塊401,用于接收集群中各節(jié)點(diǎn)設(shè)備發(fā)送的自身當(dāng)前的硬件使用狀況信息,所述節(jié)點(diǎn)設(shè)備為已啟動(dòng)的節(jié)點(diǎn)設(shè)備;
所述分析模塊402,用于根據(jù)接收到的硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息;
所述處理模塊403,用于根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
優(yōu)先地,如圖5所示,本實(shí)施例中處理模塊403包括:判斷模塊4031和調(diào)整模塊4032;
所述判斷模塊4031,用于根據(jù)所述指標(biāo)信息判斷所述集群的設(shè)備資源使用率是過高還是過低;
所述調(diào)整模塊4032,用于:
在所述判斷模塊4031判斷所述集群的設(shè)備資源使用率過低時(shí),控制所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
在所述判斷模塊4031判斷所述集群的設(shè)備資源使用率過高時(shí),控制未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
優(yōu)先地,所述調(diào)整模塊4032,用于:
通過未啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述未啟動(dòng)的節(jié)點(diǎn)設(shè)備啟動(dòng)并加入所述集群以增加所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量;
通過所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的IPMI控制所述已啟動(dòng)的節(jié)點(diǎn)設(shè)備關(guān)閉以減少所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
本發(fā)明的調(diào)整裝置可以根據(jù)集群當(dāng)前的使用狀態(tài)動(dòng)態(tài)地調(diào)整Hadoop集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量,滿足集群對(duì)節(jié)點(diǎn)設(shè)備資源的要求,從而可以提高Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)設(shè)備的利用率減少不需要的資源浪費(fèi),以及解決Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)設(shè)備資源不足的技術(shù)問題。
實(shí)施例四:
如圖6所示,本實(shí)施例提供了一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整裝置,所述調(diào)整裝置應(yīng)用于Hadoop系統(tǒng)集群中的節(jié)點(diǎn)設(shè)備,包括:采集模塊601和發(fā)送模塊602;
所述采集模塊601,用于在所述節(jié)點(diǎn)設(shè)備啟動(dòng)后,采集所述節(jié)點(diǎn)設(shè)備自身的硬件使用狀況信息;
所述發(fā)送模塊602,用于將采集到的硬件使用狀況信息發(fā)送給出去,以供接收端根據(jù)硬件使用狀況信息獲取用于描述所述集群當(dāng)前使用狀態(tài)的指標(biāo)信息,然后根據(jù)所述指標(biāo)信息調(diào)整所述集群內(nèi)已啟動(dòng)的節(jié)點(diǎn)設(shè)備的數(shù)量。
優(yōu)先地,本實(shí)施例發(fā)送模塊602,用于通過所述Hadoop系統(tǒng)使用的JMX框架將采集到的硬件使用狀況信息發(fā)送給出去。
優(yōu)先地,如圖7所示,本實(shí)施例的調(diào)整裝置還包括:IPMI603和控制模塊604;
所述IPMI603,用于接收外部傳輸?shù)年P(guān)機(jī)指令并將所述關(guān)機(jī)指令傳輸給所述控制模塊;
所述控制模塊604,用于在接收到所述關(guān)機(jī)指令后關(guān)閉所述節(jié)點(diǎn)設(shè)備。
本實(shí)施例調(diào)整裝置可以采集設(shè)備的硬件使用狀況信息以供管理端對(duì)集群內(nèi)節(jié)點(diǎn)設(shè)備的數(shù)量進(jìn)行動(dòng)態(tài)調(diào)整,解決目前Hadoop系統(tǒng)中節(jié)點(diǎn)數(shù)不能動(dòng)態(tài)調(diào)整造成的節(jié)點(diǎn)設(shè)備資源浪費(fèi)或Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)設(shè)備資源不足的技術(shù)問題。
實(shí)施例五:
如圖8所示,本實(shí)施例提供了一種Hadoop系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)的調(diào)整系統(tǒng),包括:多個(gè)未啟動(dòng)的第一節(jié)點(diǎn)設(shè)備80、位于Hadoop系統(tǒng)集群內(nèi)多個(gè)已啟動(dòng)的第二節(jié)點(diǎn) 設(shè)備81和節(jié)點(diǎn)管理裝置82;
其中第一節(jié)點(diǎn)設(shè)備80設(shè)有IPMI 801,第二節(jié)點(diǎn)設(shè)備81設(shè)有IPMI 811、采集模塊812和發(fā)送模塊813;
所述節(jié)點(diǎn)管理裝置82包括:接收模塊821、分析模塊822和處理模塊823;
第二節(jié)點(diǎn)設(shè)備81中的采集模塊812,用于采集該模塊所在的節(jié)點(diǎn)設(shè)備的硬件使用狀況數(shù)據(jù);
所述第二節(jié)點(diǎn)設(shè)備81中的采集模塊812具體地用于對(duì)采集到的基本數(shù)據(jù)建立數(shù)據(jù)轉(zhuǎn)換表,基于所述的數(shù)據(jù)轉(zhuǎn)換表對(duì)主機(jī)的狀態(tài)數(shù)據(jù)進(jìn)行處理,形成數(shù)據(jù)表,經(jīng)由JMX方式上報(bào)給系統(tǒng)。所述數(shù)據(jù)用于描述該主機(jī)節(jié)點(diǎn)的硬件使用狀況,主要包括主機(jī)總磁盤空間、主機(jī)已使用磁盤空間、當(dāng)前CPU使用百分比、當(dāng)前內(nèi)存使用百分比等;然后將所述數(shù)據(jù)表通過發(fā)送模塊發(fā)出。
第二節(jié)點(diǎn)設(shè)備81中的發(fā)送模塊813,用于將采集到的數(shù)據(jù)發(fā)送給節(jié)點(diǎn)管理裝置82中的接收模塊821,具體地,可以通過JMX框架發(fā)送給接收模塊821;
所述節(jié)點(diǎn)管理裝置82中的接收模塊821,用于接收發(fā)送模塊813上報(bào)的數(shù)據(jù),例如數(shù)據(jù)表。接收模塊負(fù)責(zé)數(shù)據(jù)表的采集和初步處理,其中具體過程包括兩部分:原始數(shù)據(jù)的接收、原始數(shù)據(jù)的加工處理。例如其底層接口可以為網(wǎng)絡(luò)接口,采用TCP/IP方式與節(jié)點(diǎn)設(shè)備的發(fā)送模塊通訊。通過系統(tǒng)提供的接口,接收來自采集模塊的原始數(shù)據(jù),遞交數(shù)據(jù)接收模塊。數(shù)據(jù)接收模塊要按照不同設(shè)備的協(xié)議對(duì)原始數(shù)據(jù)進(jìn)行解析、CRC(循環(huán)冗余校驗(yàn)碼)校驗(yàn)、計(jì)算、處理。處理完畢后遞交給數(shù)據(jù)分析模塊??紤]到發(fā)送數(shù)據(jù)的設(shè)備可能眾多,為了保證處理數(shù)據(jù)的實(shí)時(shí)性,系統(tǒng)會(huì)使用多線程技術(shù),保證數(shù)據(jù)能夠被快速處理,防止緩沖區(qū)堆滿溢出、丟失數(shù)據(jù),從而達(dá)到實(shí)時(shí)處理的要求。
節(jié)點(diǎn)管理裝置82中的分析模塊822,用于整理由接收模塊821傳上來的性 能數(shù)據(jù);基于采集模塊發(fā)送的數(shù)據(jù)表,接收模塊根據(jù)表中關(guān)鍵字提取對(duì)應(yīng)類型的數(shù)據(jù)信息,并按照不同類型數(shù)據(jù)的不同規(guī)則,計(jì)算出可準(zhǔn)確描述整個(gè)集群狀態(tài)的指標(biāo)信息,如集群內(nèi)主機(jī)平均CPU使用百分比、集群內(nèi)主機(jī)平均內(nèi)存使用百分比、集群內(nèi)總磁盤空間使用百分比等。并判斷指標(biāo)數(shù)據(jù)是否合理,所述具體判斷步驟為:將得到的指標(biāo)數(shù)據(jù)與所設(shè)定的閾值范圍作對(duì)比,若當(dāng)前指標(biāo)數(shù)據(jù)處于正常的閾值范圍內(nèi),則不進(jìn)行額外操作,繼續(xù)循環(huán)進(jìn)行采集、接收等行為;若當(dāng)前指標(biāo)數(shù)據(jù)再正常閾值范圍之外,則將結(jié)果傳遞給處理模塊。
所述處理模塊823,根據(jù)分析模塊822得到的數(shù)據(jù)判斷結(jié)果,若當(dāng)前指標(biāo)數(shù)據(jù)高于正常的閾值范圍,則說明當(dāng)前系統(tǒng)的資源使用率較高,存在資源不足的風(fēng)險(xiǎn)。若指標(biāo)數(shù)據(jù)持續(xù)高于閾值并持續(xù)一段時(shí)間,則讀取所有設(shè)備列表,查找到一臺(tái)未啟動(dòng)的第一節(jié)點(diǎn)設(shè)備,并向其IPMI發(fā)送開機(jī)指令;由于IPMI可以把系統(tǒng)管理軟件從系統(tǒng)的硬件平臺(tái)管理任務(wù)中分離出來,并且把底層的服務(wù)器管理功能與高層軟件分開,所以IPMI并不受操作系統(tǒng)管理方式的限制。IPMI通過指定通用、精簡、基于消息的接口,將信息傳輸?shù)皆O(shè)備的BMC組件,即可以實(shí)現(xiàn)遠(yuǎn)程開機(jī)的指令。第一節(jié)點(diǎn)設(shè)備根據(jù)系統(tǒng)開機(jī)啟動(dòng)項(xiàng)的配置,已經(jīng)安裝完成的Hadoop組件會(huì)隨操作系統(tǒng)啟動(dòng)并加入集群,以此來增加集群中可用的系統(tǒng)資源。相反,若當(dāng)前指標(biāo)數(shù)據(jù)低于正常的閾值范圍,則說明當(dāng)前系統(tǒng)的資源使用率偏低,存在資源浪費(fèi)的情況。若指標(biāo)數(shù)據(jù)持續(xù)低于閾值并持續(xù)一段時(shí)間,則讀取所有設(shè)備列表,查找到一臺(tái)已啟動(dòng)的第二節(jié)點(diǎn)設(shè)備,并向其IPMI發(fā)送關(guān)機(jī)指令。通過設(shè)備的BMC組件,即可以實(shí)現(xiàn)遠(yuǎn)程關(guān)機(jī)的指令。
本實(shí)施例提出了基于IPMI來自動(dòng)增減Hadoop系統(tǒng)中節(jié)點(diǎn)數(shù)的系統(tǒng),由各個(gè)集群內(nèi)節(jié)點(diǎn)中的采集模塊獲取各自節(jié)點(diǎn)的性能數(shù)據(jù),上報(bào)至管理裝置中,由管理裝置根據(jù)結(jié)果通IPMI控制目標(biāo)設(shè)備的啟動(dòng)或停止,從而達(dá)到動(dòng)態(tài)自動(dòng)調(diào)整集群內(nèi)節(jié)點(diǎn)設(shè)備數(shù)量的目的。
以上內(nèi)容是結(jié)合具體的實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。