本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體而言,涉及一種海杜普(hadoopdistributedfilesystem,hadoop)集群和分布式系統(tǒng)。
背景技術(shù):
目前,數(shù)據(jù)處理量越來越大,種類也越來越繁多,呈現(xiàn)出大數(shù)據(jù)趨勢。需要在對數(shù)據(jù)處理時,將待處理的數(shù)據(jù)分塊后輸入hadoop集群進(jìn)行并行處理(如mapreduce),以得到數(shù)據(jù)處理結(jié)果。
相關(guān)技術(shù)中,hadoop集群包括主節(jié)點和多個從節(jié)點,主節(jié)點將待處理的數(shù)據(jù)分配到從節(jié)點,從節(jié)點對數(shù)據(jù)進(jìn)行處理和存儲。當(dāng)在hadoop集群中增加從節(jié)點時,需要將hadoop集群中已有從節(jié)點上的數(shù)據(jù)遷移到新增從節(jié)點上。當(dāng)要從hadoop集群中刪除從節(jié)點時,需要先將待刪除的從節(jié)點上的數(shù)據(jù)遷移到其他從節(jié)點后,才能刪除該待刪除的節(jié)點。
在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
由于從節(jié)點具有數(shù)據(jù)處理和存儲功能,hadoop集群進(jìn)行從節(jié)點增減時,都需要耗費大量的時間(幾個小時或者幾天)進(jìn)行從節(jié)點間數(shù)據(jù)遷移,從而降低了hadoop集群的運行效率。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種hadoop集群和分布式系統(tǒng),以提高h(yuǎn)adoop集群的運行效率。
第一方面,本發(fā)明實施例提供了一種hadoop集群,包括:主節(jié)點和與所述主節(jié)點連接的計算從節(jié)點;
所述主節(jié)點,用于向所述計算從節(jié)點分配待處理的數(shù)據(jù);
所述計算從節(jié)點,用于對所述主節(jié)點分配的數(shù)據(jù)進(jìn)行計算。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中:還包括:與所述主節(jié)點連接的核心從節(jié)點;
所述核心從節(jié)點,用于對所述主節(jié)點分配的數(shù)據(jù)進(jìn)行存儲。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中:所述主節(jié)點、所述核心從節(jié)點和所述計算從節(jié)點均采用虛擬機(jī)。
第二方面,本發(fā)明實施例還提供一種分布式系統(tǒng),包括:節(jié)點調(diào)整服務(wù)器和上述權(quán)利要求1-3任一項所述的hadoop集群;
所述hadoop集群,包括:主節(jié)點、與所述主節(jié)點分別連接的計算從節(jié)點和核心從節(jié)點;
所述節(jié)點調(diào)整服務(wù)器,與所述主節(jié)點連接,用于根據(jù)所述計算從節(jié)點的計算任務(wù)信息和所述核心從節(jié)點的存儲任務(wù)信息,分別調(diào)整與所述主節(jié)點連接的所述計算從節(jié)點和所述核心從節(jié)點的數(shù)量。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中:所述節(jié)點調(diào)整服務(wù)器,包括:
集群監(jiān)控器,用于獲取所述計算從節(jié)點的計算任務(wù)信息和所述核心從節(jié)點的存儲任務(wù)信息;
計算節(jié)點處理器,用于根據(jù)所述計算任務(wù)信息,計算所述計算從節(jié)點的第一擴(kuò)容數(shù)量;
核心節(jié)點處理器,用于根據(jù)所述存儲任務(wù)信息,計算所述核心從節(jié)點的第二擴(kuò)容數(shù)量或者縮減數(shù)量;
從節(jié)點調(diào)整單元,用于根據(jù)所述第一擴(kuò)容數(shù)量對與所述主節(jié)點連接的所述計算從節(jié)點的數(shù)量進(jìn)行調(diào)整,根據(jù)所述第二擴(kuò)容數(shù)量或者所述縮減數(shù)量對與所述主節(jié)點連接的所述核心從節(jié)點的數(shù)量進(jìn)行調(diào)整。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,其中:所述計算任務(wù)信息,包括:待處理任務(wù)量、當(dāng)前工作中的計算從節(jié)點的計算能力參數(shù)、當(dāng)前工作中的計算從節(jié)點的空閑計算能力參數(shù)和各計算從節(jié)點的最大計算能力參數(shù);
所述計算節(jié)點處理器,具體用于:
當(dāng)所述計算能力參數(shù)大于預(yù)設(shè)第一計算能力閾值的時長達(dá)到預(yù)設(shè)時長時,所述第一擴(kuò)容數(shù)量=(所述待處理任務(wù)量-所述空閑計算能力參數(shù))/所述最大計算能力參數(shù)。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第三種可能的實施方式,其中:所述計算任務(wù)信息,還包括:空閑計算從節(jié)點和空閑時間的對應(yīng)關(guān)系表,所述空閑計算從節(jié)點和空閑時間的對應(yīng)關(guān)系表記錄有當(dāng)前空閑的計算從節(jié)點的標(biāo)識和對應(yīng)的空閑時間;
所述計算節(jié)點處理器,還具體用于:
當(dāng)根據(jù)所述空閑計算從節(jié)點和空閑時間的對應(yīng)關(guān)系表,確定有計算從節(jié)點的空閑時間達(dá)到預(yù)設(shè)的第一空閑時間閾值時,將空閑時間達(dá)到所述第一空閑時間閾值的計算從節(jié)點的標(biāo)識發(fā)送給所述從節(jié)點調(diào)整單元,使得所述從節(jié)點調(diào)整單元終止所述標(biāo)識對應(yīng)的計算從節(jié)點與所述主節(jié)點的連接。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第四種可能的實施方式,其中:所述存儲任務(wù)信息,包括:集群當(dāng)前存儲數(shù)據(jù)量、復(fù)制率、集群最大數(shù)據(jù)存儲量、各核心從節(jié)點的最大存儲能力參數(shù)、數(shù)據(jù)加載率上限閾值和數(shù)據(jù)加載率下限閾值:
所述核心節(jié)點處理器,具體用于:
通過(所述集群當(dāng)前存儲數(shù)據(jù)量*所述復(fù)制率)/所述集群最大數(shù)據(jù)存儲量,計算所述hadoop集群的當(dāng)前數(shù)據(jù)加載率;
當(dāng)確定所述當(dāng)前數(shù)據(jù)加載率大于所述數(shù)據(jù)加載率上限閾值時,通過(所述集群當(dāng)前存儲數(shù)據(jù)量*所述復(fù)制率-所述集群最大數(shù)據(jù)存儲量)/(各核心從節(jié)點的最大存儲能力參數(shù)*數(shù)據(jù)加載率上限閾值),計算所述第二擴(kuò)容數(shù)量;
當(dāng)確定所述當(dāng)前數(shù)據(jù)加載率小于所述數(shù)據(jù)加載率下限閾值時,通過(所述集群當(dāng)前存儲數(shù)據(jù)量*所述復(fù)制率-所述集群最大數(shù)據(jù)存儲量)/(各核心從節(jié)點的最大存儲能力參數(shù)*數(shù)據(jù)加載率下限閾值),計算所述縮減數(shù)量。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第五種可能的實施方式,其中:所述從節(jié)點調(diào)整單元,用于根據(jù)所述第一擴(kuò)容數(shù)量對與所述主節(jié)點連接的所述計算從節(jié)點的數(shù)量進(jìn)行調(diào)整,包括:
從空閑狀態(tài)的計算從節(jié)點中選擇所述第一擴(kuò)容數(shù)量的計算空節(jié)點與所述主節(jié)點連接;
當(dāng)獲取到所述計算節(jié)點處理器發(fā)送的計算從節(jié)點的標(biāo)識時,終止所述標(biāo)識對應(yīng)的計算從節(jié)點與所述主節(jié)點的連接,并將所述標(biāo)識對應(yīng)的計算從節(jié)點設(shè)置為空閑狀態(tài)。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第六種可能的實施方式,其中:所述從節(jié)點調(diào)整單元,用于根據(jù)所述第二擴(kuò)容數(shù)量或者所述縮減數(shù)量對與所述主節(jié)點連接的所述核心從節(jié)點的數(shù)量進(jìn)行調(diào)整,包括:
當(dāng)獲取到所述第二擴(kuò)容數(shù)量時,從空閑狀態(tài)的核心從節(jié)點中選擇所述第一擴(kuò)容數(shù)量的核心空節(jié)點與所述主節(jié)點連接;
當(dāng)獲取到所述縮減數(shù)量時,獲取當(dāng)前與所述主節(jié)點連接的各核心從節(jié)點的數(shù)據(jù)存儲量;
根據(jù)所述各核心從節(jié)點的數(shù)據(jù)存儲量,從所述各核心從節(jié)點中確定出數(shù)據(jù)存儲量最小的所述縮減數(shù)量的核心從節(jié)點作為待終止的核心從節(jié)點;
終止確定出的所述核心從節(jié)點與所述主節(jié)點的連接,并將連接被終止的核心從節(jié)點設(shè)置為空閑狀態(tài)。
本發(fā)明實施例提供的hadoop集群和分布式系統(tǒng),通過在hadoop集群中設(shè)置用于數(shù)據(jù)計算的計算從節(jié)點,與相關(guān)技術(shù)中在對集群中的從節(jié)點進(jìn)行增減時需要進(jìn)行數(shù)據(jù)遷移相比,對計算從節(jié)點的增減無需進(jìn)行數(shù)據(jù)遷移,只需很短的時間就能完成,保證了hadoop集群中計算從節(jié)點的處理性能,提高了hadoop集群的運行效率。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實施例1所提供的一種hadoop集群的結(jié)構(gòu)示意圖;
圖2示出了本發(fā)明實施例2所提供的分布式系統(tǒng)的結(jié)構(gòu)示意圖;
圖3示出了本發(fā)明實施例2所提供的分布式系統(tǒng)中,節(jié)點調(diào)整服務(wù)器的結(jié)構(gòu)示意圖;
圖4示出了本發(fā)明實施例2所提供的分布式系統(tǒng)中,節(jié)點調(diào)整服務(wù)器的從節(jié)點調(diào)整單元具體調(diào)整核心從節(jié)點數(shù)量的具體流程。
圖標(biāo):100-主節(jié)點;102-計算從節(jié)點;104-核心從節(jié)點;200-節(jié)點調(diào)整服務(wù)器;202-hadoop集群;300-集群監(jiān)控器;302-計算節(jié)點處理器;304-核心節(jié)點處理器;306-從節(jié)點調(diào)整單元。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
目前,hadoop集群包括主節(jié)點和多個從節(jié)點,主節(jié)點將待處理的數(shù)據(jù)分配到從節(jié)點,從節(jié)點對數(shù)據(jù)進(jìn)行處理和存儲。當(dāng)在hadoop集群中增加從節(jié)點時,需要將hadoop集群中已有從節(jié)點上的數(shù)據(jù)遷移到新增從節(jié)點上。當(dāng)要從hadoop集群中刪除從節(jié)點時,需要先將待刪除的從節(jié)點上的數(shù)據(jù)遷移到其他從節(jié)點后,才能刪除該待刪除的節(jié)點。由于從節(jié)點具有數(shù)據(jù)處理和存儲功能,hadoop集群進(jìn)行從節(jié)點增減時,都需要耗費大量的時間(幾個小時或者幾天)進(jìn)行從節(jié)點間數(shù)據(jù)遷移,而進(jìn)行數(shù)據(jù)遷移的從節(jié)點并不能處理主節(jié)點分配的數(shù)據(jù),從而降低了hadoop集群的運行效率?;诖?,本申請?zhí)峁┑囊环Nhadoop集群和分布式系統(tǒng)。
需要注意的是,在本發(fā)明的描述中,術(shù)語“中心”、“上”、“下”、“左”、“右”、“豎直”、“水平”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”、“第三”僅用于描述目的,而不能理解為指示或暗示相對重要性。
另外,在本發(fā)明的描述中,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
實施例1
參見圖1,本實施例提出一種hadoop集群,包括:主節(jié)點100和與上述主節(jié)點100連接的計算從節(jié)點102;
上述主節(jié)點100,用于向上述計算從節(jié)點102分配待處理的數(shù)據(jù);
上述計算從節(jié)點102,用于對上述主節(jié)點100分配的數(shù)據(jù)進(jìn)行計算。
優(yōu)選地,上述hadoop集群,可以是應(yīng)用在云環(huán)境下的hadoop集群。
在通過上述hadoop集群進(jìn)行工作之前,hadoop集群的工作人員可以將待統(tǒng)計分析的數(shù)據(jù)拆分成若干個等大小的數(shù)據(jù)瓦片,數(shù)據(jù)瓦片為hadoopsequencefile8格式并且被加載到coveringhdfs用于處理。通常副本因子設(shè)置為3,數(shù)據(jù)瓦片大小設(shè)置為32mb。設(shè)置鍵值對,對輸入的數(shù)據(jù)瓦片按照一定的規(guī)則解析成鍵值對。
在將待統(tǒng)計分析的數(shù)據(jù)拆分形成多個鍵值對后,hadoop集群的工作人員在coveringhdfs設(shè)置hadoop集群的主節(jié)點和計算從節(jié)點。主節(jié)點存儲了元數(shù)據(jù)信息。建議在hadoop集群中設(shè)置主節(jié)點的數(shù)量為1個。
上述主節(jié)點100存儲的元數(shù)據(jù)信息,包括了文件名稱、大小、位置、屬性、創(chuàng)建時間、修改時間、文件與塊和節(jié)點的對應(yīng)關(guān)系、以及用戶對文件的操作信息。
設(shè)置在hadoop集群中的計算從節(jié)點,只提供計算能力,不提供數(shù)據(jù)存儲能力。因此當(dāng)集群增加或者減少時,最先開啟或者關(guān)閉的是計算從節(jié)點。
為了保證hadoop集群能夠正常工作,本實施例提出的hadoop集群,還包括:與上述主節(jié)點連接的核心從節(jié)點104;
上述核心從節(jié)點104,用于對上述主節(jié)點分配的數(shù)據(jù)進(jìn)行存儲。
在設(shè)置好hadoop集群中的主節(jié)點和計算從節(jié)點后,可以繼續(xù)設(shè)置hadoop集群中的核心從節(jié)點。核心從節(jié)點可以作為整個hadoop集群的數(shù)據(jù)io。hadoop集群中設(shè)置的核心從節(jié)點越多,整個hadoop集群的io能力越強(qiáng),“數(shù)據(jù)本地化(datalocality)”能力越強(qiáng)。一個hadoop集群中核心從節(jié)點的最少數(shù)量是由整個任務(wù)的特點來決定的。比如:處理io密集型任務(wù)時,hadoop集群就應(yīng)該有較多的核心從節(jié)點;而處理計算密集的任務(wù)時,hadoop集群就可以有較多的計算從節(jié)點。
在hadoop集群的各工作節(jié)點設(shè)置完畢后,用戶在客戶端上向hadoop集群發(fā)送數(shù)據(jù)分析作業(yè),hadoop集群將運行該數(shù)據(jù)分析作業(yè)所需要的資源文件復(fù)制到hdfs上,這些文件都存放在主節(jié)點100預(yù)設(shè)的jobtracker為該作業(yè)創(chuàng)建的文件夾中。在文件存儲完畢后,jobtracker創(chuàng)建一個作業(yè)隊列,根據(jù)當(dāng)前各計算從節(jié)點和核心從節(jié)點的處理器核心的數(shù)量和內(nèi)存的大小進(jìn)行任務(wù)調(diào)度。
該核心從節(jié)點104,用于提供存儲數(shù)據(jù)能力的同時,還可以對數(shù)據(jù)進(jìn)行計算。
綜上所述,本發(fā)明實施例提供的hadoop集群,通過在hadoop集群中設(shè)置用于數(shù)據(jù)計算的計算從節(jié)點,與相關(guān)技術(shù)中在對集群中的從節(jié)點進(jìn)行增減時需要進(jìn)行數(shù)據(jù)遷移相比,對計算從節(jié)點的增減無需進(jìn)行數(shù)據(jù)遷移,只需很短的時間就能完成,保證了hadoop集群中計算從節(jié)點的處理性能,提高了hadoop集群的運行效率。
相關(guān)技術(shù)中,hadoop集群中的各工作節(jié)點(主節(jié)點、從節(jié)點)只能部署在物理機(jī)中,部署速度較慢而且部署數(shù)量會受到物理機(jī)的數(shù)量限制。為了增加hadoop集群中各工作節(jié)點的部署速度,本實施例提出的hadoop集群中,上述主節(jié)點、上述核心從節(jié)點和上述計算從節(jié)點均采用虛擬機(jī)。
除了采用虛擬機(jī)之外,hadoop集群中的上述主節(jié)點、上述核心從節(jié)點和上述計算從節(jié)點還可采用物理機(jī)。
通過以上的描述可以看出,hadoop集群中的各工作節(jié)點優(yōu)選采用虛擬機(jī),借助虛擬化技術(shù),理論上可以無限擴(kuò)展hadoop集群的計算和存儲資源,使得增加的工作節(jié)點數(shù)量不受物理機(jī)數(shù)量限制;還可以快速增加hadoop集群中的工作節(jié)點,提高工作節(jié)點的部署效率。
實施例2
相關(guān)技術(shù)中,hadoop集群的主節(jié)點和多個從節(jié)點多采用物理機(jī)。hadoop集群部署后,一旦需要對hadoop集群中的節(jié)點進(jìn)行擴(kuò)展或者縮減,則需要hadoop集群的工作人員手動設(shè)置參數(shù),操作比較繁瑣。為了提高h(yuǎn)adoop集群的執(zhí)行效率,參見圖2所示的系統(tǒng)結(jié)構(gòu),本實施例提出一種分布式系統(tǒng),包括:節(jié)點調(diào)整服務(wù)器200和上述實施例1描述的hadoop集群202。
上述hadoop集群202,包括:主節(jié)點、與上述主節(jié)點分別連接的計算從節(jié)點和核心從節(jié)點;
上述節(jié)點調(diào)整服務(wù)器200,與上述主節(jié)點連接,用于根據(jù)上述計算從節(jié)點的計算任務(wù)信息和上述核心從節(jié)點的存儲任務(wù)信息,分別調(diào)整與上述主節(jié)點連接的上述計算從節(jié)點和上述核心從節(jié)點的數(shù)量。
其中,上述節(jié)點調(diào)整服務(wù)器200從結(jié)構(gòu)上劃分,可以包括:一個控制界面,一個數(shù)據(jù)庫和一個集群監(jiān)控器。
其中,上述控制界面用來顯示當(dāng)前hadoop集群中的存儲能力和計算能力的狀態(tài),相當(dāng)于一個ui界面。
上述數(shù)據(jù)庫用來存儲當(dāng)前負(fù)載均衡監(jiān)控器和計算能力調(diào)度器的計算結(jié)果。
集群監(jiān)控器包括但不限于:任務(wù)分析器、負(fù)載均衡監(jiān)控器和計算能力調(diào)度器。
上述節(jié)點調(diào)整服務(wù)器從功能上劃分,參見圖3所示的節(jié)點調(diào)整服務(wù)器的結(jié)構(gòu)示意圖,上述節(jié)點調(diào)整服務(wù)器,包括:
集群監(jiān)控器300,用于獲取上述計算從節(jié)點的計算任務(wù)信息和上述核心從節(jié)點的存儲任務(wù)信息;
計算節(jié)點處理器302,用于根據(jù)上述計算任務(wù)信息,計算上述計算從節(jié)點的第一擴(kuò)容數(shù)量;
核心節(jié)點處理器304,用于根據(jù)上述存儲任務(wù)信息,計算上述核心從節(jié)點的第二擴(kuò)容數(shù)量或者縮減數(shù)量;
從節(jié)點調(diào)整單元306,用于根據(jù)上述第一擴(kuò)容數(shù)量對與上述主節(jié)點連接的上述計算從節(jié)點的數(shù)量進(jìn)行調(diào)整,根據(jù)上述第二擴(kuò)容數(shù)量或者上述縮減數(shù)量對與上述主節(jié)點連接的上述核心從節(jié)點的數(shù)量進(jìn)行調(diào)整。
其中,集群監(jiān)控器300分別與計算節(jié)點處理器302和核心節(jié)點處理器304連接,計算節(jié)點處理器302和核心節(jié)點處理器304還分別與從節(jié)點調(diào)整單元306連接。
其中,上述計算任務(wù)信息,包括:待處理任務(wù)量、當(dāng)前工作中的計算從節(jié)點的計算能力參數(shù)、當(dāng)前工作中的計算從節(jié)點的空閑計算能力參數(shù)和各計算從節(jié)點的最大計算能力參數(shù)。
上述待處理任務(wù)量,由集群監(jiān)控器中的任務(wù)分析器得到,任務(wù)分析器連接hadoop的jobtracker,從而得到當(dāng)前待處理的任務(wù)數(shù)量。
上述當(dāng)前工作中的計算從節(jié)點的計算能力參數(shù),是集群監(jiān)控器的負(fù)載均衡監(jiān)控器中得到,具體是指集群中正在執(zhí)行計算任務(wù)的計算節(jié)點的cpu的數(shù)量。
上述空閑計算能力參數(shù),是集群監(jiān)控器的負(fù)載均衡監(jiān)控器中得到,具體是指集群中空閑節(jié)點的cpu的數(shù)量。
各個節(jié)點的最大計算能力參數(shù),是作為節(jié)點使用的主機(jī)中的cpu數(shù)量。是申請?zhí)摂M機(jī)時得到的參數(shù)。
具體地,當(dāng)上述hadoop集群部署在云環(huán)境下時,上述主機(jī)可以采用虛擬機(jī)實現(xiàn);在其他情況下,上述主機(jī)也可以采用物理機(jī)實現(xiàn)。
上述計算節(jié)點處理器,具體用于執(zhí)行以下步驟:
當(dāng)上述計算能力參數(shù)大于預(yù)設(shè)第一計算能力閾值的時長達(dá)到預(yù)設(shè)時長時,上述第一擴(kuò)容數(shù)量=(上述待處理任務(wù)量-上述空閑計算能力參數(shù))/上述最大計算能力參數(shù)。
進(jìn)一步地,上述計算任務(wù)信息,還包括:空閑計算從節(jié)點和空閑時間的對應(yīng)關(guān)系表,上述空閑計算從節(jié)點和空閑時間的對應(yīng)關(guān)系表記錄有當(dāng)前空閑的計算從節(jié)點的標(biāo)識和對應(yīng)的空閑時間。
在一個實施方式中,上述計算節(jié)點處理器,還具體用于執(zhí)行以下步驟:
當(dāng)根據(jù)所述空閑計算從節(jié)點和空閑時間的對應(yīng)關(guān)系表,確定有計算從節(jié)點的空閑時間達(dá)到預(yù)設(shè)的第一空閑時間閾值時,將空閑時間達(dá)到所述第一空閑時間閾值的計算從節(jié)點的標(biāo)識發(fā)送給所述從節(jié)點調(diào)整單元,使得所述從節(jié)點調(diào)整單元終止所述標(biāo)識對應(yīng)的計算從節(jié)點與所述主節(jié)點的連接。
在一個實施方式中,上述從節(jié)點調(diào)整單元,用于根據(jù)上述第一擴(kuò)容數(shù)量對與上述主節(jié)點連接的上述計算從節(jié)點的數(shù)量進(jìn)行調(diào)整,包括以下步驟(1)至步驟(2):
(1)當(dāng)獲取到上述計算節(jié)點處理器發(fā)送的上述第一擴(kuò)容數(shù)量時,從空閑狀態(tài)的計算從節(jié)點中選擇上述第一擴(kuò)容數(shù)量的計算空節(jié)點與上述主節(jié)點連接;
(2)當(dāng)獲取到上述計算節(jié)點處理器發(fā)送的計算從節(jié)點的標(biāo)識時,終止上述標(biāo)識對應(yīng)的計算從節(jié)點與上述主節(jié)點的連接,并將上述標(biāo)識對應(yīng)的計算從節(jié)點設(shè)置為空閑狀態(tài)。
通過以上的描述可以看出,通過簡單的計算和處理,就可以對hadoop集群中的計算從節(jié)點進(jìn)行擴(kuò)展或者縮減,降低了hadoop集群中計算節(jié)點的部署難度。
在hadoop集群中可以通過以上描述的方法進(jìn)行計算從節(jié)點的擴(kuò)展和縮減,下面本實施例中繼續(xù)對如何進(jìn)行核心從節(jié)點進(jìn)行擴(kuò)展和縮減進(jìn)行描述。
上述存儲任務(wù)信息,包括:集群當(dāng)前存儲數(shù)據(jù)量、復(fù)制率、集群最大數(shù)據(jù)存儲量、各核心從節(jié)點的最大存儲能力參數(shù)、數(shù)據(jù)加載率上限閾值和數(shù)據(jù)加載率下限閾值。
具體地,上述集群當(dāng)前存儲數(shù)據(jù)量:是集群監(jiān)控器的負(fù)載均衡監(jiān)控器中得到hadoop集群的所有核心從節(jié)點當(dāng)前磁盤存儲空間。
復(fù)制率,為預(yù)設(shè)常數(shù),hadoop集群的工作人員可以在進(jìn)行作業(yè)之前通過主節(jié)點上的dfs.replication來設(shè)置復(fù)制率的大小。
在一個實施方式中,復(fù)制率可以設(shè)置為3。
上述集群最大數(shù)據(jù)存儲量,用于表示hadoop集群中所有核心從節(jié)點的硬盤容量。
上述從節(jié)點最大存儲能力,核心從節(jié)點上最大的硬盤容量。
具體地,hadoop集群中所有核心從節(jié)點的硬盤容量以及核心從節(jié)點上最大的硬盤容量可以在hadoop集群投入使用之前由技術(shù)人員設(shè)置得到。
上述數(shù)據(jù)加載率上限閾值和數(shù)據(jù)加載率下限閾值,是人為設(shè)置的數(shù)據(jù)存儲率參數(shù),hadoop集群的工作人員可以在進(jìn)行作業(yè)之前進(jìn)行設(shè)置。
因此,上述核心節(jié)點處理器,具體用于執(zhí)行以下步驟(1)至步驟(3):
(1)通過(上述集群當(dāng)前存儲數(shù)據(jù)量*上述復(fù)制率)/上述集群最大數(shù)據(jù)存儲量,計算上述hadoop集群的當(dāng)前數(shù)據(jù)加載率;
(2)當(dāng)確定上述當(dāng)前數(shù)據(jù)加載率大于上述數(shù)據(jù)加載率上限閾值時,通過(上述集群當(dāng)前存儲數(shù)據(jù)量*上述復(fù)制率-上述集群最大數(shù)據(jù)存儲量)/(各核心從節(jié)點的最大存儲能力參數(shù)*數(shù)據(jù)加載率上限閾值),計算上述第二擴(kuò)容數(shù)量;
(3)當(dāng)確定上述當(dāng)前數(shù)據(jù)加載率小于上述數(shù)據(jù)加載率下限閾值時,通過(上述集群當(dāng)前存儲數(shù)據(jù)量*上述復(fù)制率-上述集群最大數(shù)據(jù)存儲量)/(各核心從節(jié)點的最大存儲能力參數(shù)*數(shù)據(jù)加載率下限閾值),計算上述縮減數(shù)量。
在一個實施方式中,參見圖4所示的流程,上述從節(jié)點調(diào)整單元,用于根據(jù)上述第二擴(kuò)容數(shù)量或者上述縮減數(shù)量對與上述主節(jié)點連接的上述核心從節(jié)點的數(shù)量進(jìn)行調(diào)整,包括以下步驟:
步驟400、當(dāng)獲取到上述第二擴(kuò)容數(shù)量時,從空閑狀態(tài)的核心從節(jié)點中選擇上述第一擴(kuò)容數(shù)量的核心空節(jié)點與上述主節(jié)點連接;
步驟402、當(dāng)獲取到上述縮減數(shù)量時,獲取當(dāng)前與上述主節(jié)點連接的各核心從節(jié)點的數(shù)據(jù)存儲量;
步驟404、根據(jù)上述各核心從節(jié)點的數(shù)據(jù)存儲量,從上述各核心從節(jié)點中確定出數(shù)據(jù)存儲量最小的上述縮減數(shù)量的核心從節(jié)點作為待終止的核心從節(jié)點;
步驟406、終止確定出的上述核心從節(jié)點與上述主節(jié)點的連接,并將連接被終止的核心從節(jié)點設(shè)置為空閑狀態(tài)。
通過以上步驟400至步驟406的描述可以看出,從上述各核心從節(jié)點中確定出數(shù)據(jù)存儲量最小的上述縮減數(shù)量的核心從節(jié)點作為待終止的核心從節(jié)點,從而大大減少了縮減從節(jié)點過程中數(shù)據(jù)遷移的時間,提高了hadoop集群的節(jié)點調(diào)整效率。
為了增加部署效率,上述節(jié)點調(diào)整服務(wù)器200,可以部署在虛擬機(jī)上。優(yōu)選地,節(jié)點調(diào)整服務(wù)器200可以部署在主節(jié)點所在物理機(jī)的虛擬機(jī)上。
綜上所述,本實施例提出的分布式系統(tǒng),提出了hadoop集群中計算從節(jié)點和核心從節(jié)點的自動化的彈性擴(kuò)容或者縮減方法;提高了計算資源和存儲資源的利用效率,確保數(shù)據(jù)處理的效率最優(yōu)和成本最低。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,又例如,多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(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)。