一種彈性的云數(shù)據(jù)挖掘平臺(tái)部署方法
【專利摘要】本發(fā)明是一種彈性的云數(shù)據(jù)挖掘平臺(tái)部署方法,可以自由部署一個(gè)或多個(gè)hadoop集群并且不影響物理機(jī)用戶的正常使用,尤其適用于機(jī)器數(shù)量有限的中小型集群。在面對(duì)cpu,帶寬,內(nèi)存,磁盤以及時(shí)間的不同需求時(shí),可以靈活進(jìn)行資源分配。這里不僅僅是指hadoop內(nèi)部各節(jié)點(diǎn)之間的負(fù)載均衡,還包括與普通用戶正常使用需求之間的協(xié)調(diào),是整個(gè)集群內(nèi)的負(fù)載均衡。將hadoop和openstack結(jié)合并加以改進(jìn),利用虛擬化使得數(shù)據(jù)挖掘集群的部署更加簡(jiǎn)單靈活,并且同時(shí)給用戶提供虛擬機(jī)作為日常使用,不會(huì)影響原有工作。
【專利說(shuō)明】一種彈性的云數(shù)據(jù)挖掘平臺(tái)部署方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是在openstack和hadoop結(jié)合的基礎(chǔ)上,利用兩者的優(yōu)點(diǎn)相互補(bǔ)充并加以完善,設(shè)計(jì)了一種彈性的云數(shù)據(jù)挖掘平臺(tái),主要是提供一種靈活自由的適用于中小型集群的數(shù)據(jù)挖掘平臺(tái)部署方案。屬于分布式計(jì)算和云計(jì)算領(lǐng)域。
【背景技術(shù)】
[0002]當(dāng)前全球IT領(lǐng)域有了令人振奮的發(fā)展趨勢(shì)和挑戰(zhàn),現(xiàn)在每天都有大量數(shù)據(jù)和信息生成,這為大數(shù)據(jù)分析提供了機(jī)會(huì)。這些數(shù)據(jù)量?jī)H僅是數(shù)據(jù),并不能解決問(wèn)題,它要從數(shù)據(jù)變成信息、變成智能、變成商業(yè)價(jià)值,這才能夠體現(xiàn)出真正的大數(shù)據(jù)的價(jià)值。
[0003]然而大數(shù)據(jù)必須有云作為基礎(chǔ)架構(gòu),才能得以順暢運(yùn)營(yíng)。所謂云計(jì)算,就是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)去連接由大量服務(wù)器、存儲(chǔ)設(shè)備集群構(gòu)成的云計(jì)算平臺(tái),來(lái)獲取遠(yuǎn)程客戶端所需要的服務(wù)。而云計(jì)算服務(wù)商則是將一項(xiàng)復(fù)雜的運(yùn)算任務(wù)分成若干個(gè)部分,通過(guò)分布在計(jì)算機(jī)網(wǎng)絡(luò)中的計(jì)算機(jī)協(xié)同合作,最終將運(yùn)算結(jié)果傳輸?shù)娇蛻舳?,從而?shí)現(xiàn)個(gè)人數(shù)據(jù)在遠(yuǎn)程的計(jì)算資源集群的運(yùn)算。
[0004]云計(jì)算提供了基礎(chǔ)架構(gòu)平臺(tái),大數(shù)據(jù)應(yīng)用在這個(gè)平臺(tái)上運(yùn)行。目前公認(rèn)的處理大數(shù)據(jù)集最有效的手段是分布式處理,云計(jì)算能降低數(shù)據(jù)中心成本,解決資源不合理利用。
[0005]OpenStack是一個(gè)云計(jì)算平臺(tái)管理的項(xiàng)目,旨在為公共及私有云的建設(shè)與管理提供軟件。它的社區(qū)擁有超過(guò)130家企業(yè)及1350位開(kāi)發(fā)者,這些機(jī)構(gòu)與個(gè)人都將OpenStack作為基礎(chǔ)設(shè)施即服務(wù)(簡(jiǎn)稱IaaS)資源的通用前端。OpenStack項(xiàng)目的首要任務(wù)是簡(jiǎn)化云的部署過(guò)程并為其帶來(lái)良好的可擴(kuò)展性。
[0006]Hadoop是一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會(huì)開(kāi)發(fā)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序。充分利用集群的威力高速運(yùn)算和存儲(chǔ)。Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)HDFS。HDFS有著高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的硬件上。Hadoop以并行的方式工作,通過(guò)并行處理加快處理速度;還可以伸縮,能夠處理PB級(jí)數(shù)據(jù)。
[0007]在大多數(shù)時(shí)候我們的需求是不同的,有部分任務(wù)需要使用高性能計(jì)算(HPC),有部分任務(wù)需要使用大數(shù)據(jù)計(jì)算(Hadoop),有時(shí)候是對(duì)外定制化多項(xiàng)服務(wù)。對(duì)cpu,帶寬,內(nèi)存,磁盤以及時(shí)間的需求是不同的。如果為每一種需求都去購(gòu)買對(duì)應(yīng)的物理機(jī)會(huì)造成大量的資源浪費(fèi),很多時(shí)候我們的服務(wù)器負(fù)載只有20%_30%。
[0008]尤其對(duì)于中小型集群,例如小型企業(yè),實(shí)驗(yàn)室等機(jī)器數(shù)量有限的情況下,單獨(dú)建立一個(gè)hadoop集群是不切實(shí)際的。然而如果僅將hadoop作為一個(gè)軟件部署在整個(gè)集群內(nèi),又存在節(jié)點(diǎn)可靠性低,資源分配不合理,機(jī)器更新困難等問(wèn)題,并且日常使用的系統(tǒng)大多數(shù)為windows平臺(tái),無(wú)法兼容hadoop。影響了原有的工作,又很難有合適的管理方法來(lái)規(guī)范用戶行為。由此可見(jiàn),在一個(gè)小型集群內(nèi)搭建hadoop而不影響到日常使用將面臨諸多的麻煩。
[0009]
【發(fā)明內(nèi)容】
[0010]技術(shù)問(wèn)題:本發(fā)明的目的是提出一種彈性的云數(shù)據(jù)挖掘平臺(tái)部署方法,可以自由部署一個(gè)或多個(gè)hadoop集群并且不影響物理機(jī)用戶的正常使用,尤其適用于機(jī)器數(shù)量有限的中小型集群。在面對(duì)cpu,帶寬,內(nèi)存,磁盤以及時(shí)間的不同需求時(shí),可以靈活進(jìn)行資源分配。這里不僅僅是指hadoop內(nèi)部各節(jié)點(diǎn)之間的負(fù)載均衡,還包
括與普通用戶正常使用需求之間的協(xié)調(diào),是整個(gè)集群內(nèi)的負(fù)載均衡。
[0011]技術(shù)方案:針對(duì)這些問(wèn)題,本發(fā)明提出了一種彈性的數(shù)據(jù)挖掘平臺(tái),將整個(gè)集群進(jìn)行虛擬化,抽象為一個(gè)資源池,這里我們選擇openstack來(lái)管理整個(gè)集群。通過(guò)openstack創(chuàng)建并管理一系列的虛擬機(jī),每個(gè)虛擬機(jī)作為一個(gè)節(jié)點(diǎn)或者一個(gè)常規(guī)系統(tǒng)供用戶日常使用。這樣使得hadoop的節(jié)點(diǎn)粒度變細(xì),更加靈活,易于管理。同時(shí),因?yàn)閛penstack具有動(dòng)態(tài)遷移的特性,進(jìn)一步提高了 hadoop節(jié)點(diǎn)的有效性。
[0012]在此基礎(chǔ)之上,根據(jù)MapReduce的特性,對(duì)JobTracker的分配機(jī)制進(jìn)行了相應(yīng)的改進(jìn)。Hadoop最大的特點(diǎn)是本地化計(jì)算,但是僅僅是指map的任務(wù)的本地化,在JobTracker分配task的時(shí)候,一個(gè)map任務(wù)對(duì)應(yīng)hdfs中的一個(gè)塊的數(shù)據(jù),所以分配的時(shí)候會(huì)盡量將task分配到hdfs對(duì)應(yīng)塊所在機(jī)器。這是Hadoop適合大數(shù)據(jù)處理的一個(gè)很重要的原因。但是這僅僅是map操作的時(shí)候,reduce操作的時(shí)候還是會(huì)占用大量帶寬。因此,使用openstack在一臺(tái)計(jì)算機(jī)上啟動(dòng)多臺(tái)虛擬機(jī),reduce傳輸數(shù)據(jù)會(huì)盡量在一臺(tái)計(jì)算機(jī)上的多個(gè)虛擬機(jī)節(jié)點(diǎn)中進(jìn)行,而不是傳統(tǒng)的分散在各個(gè)節(jié)點(diǎn)中進(jìn)行。這樣只占用硬盤讀寫速度,比占用網(wǎng)絡(luò)帶寬好很多。
[0013]該平臺(tái)的主要使用步驟如下:
步驟1.在整個(gè)物理機(jī)集群上建立一個(gè)可以提供各類虛擬機(jī)的虛擬化平臺(tái);
步驟2.為集群使用人員創(chuàng)建各自的賬戶并分配權(quán)限。給一般用戶分配申請(qǐng)PC虛擬機(jī)和發(fā)布數(shù)據(jù)挖掘任務(wù)的權(quán)限,只能進(jìn)入僅有使用功能的普通用戶面板。給管理人員分配一般用戶的所有權(quán)限以及管理整個(gè)集群的權(quán)限,可以進(jìn)入管理員面板進(jìn)行各項(xiàng)管理;
步驟3.用戶通過(guò)Web交互頁(yè)面登陸平臺(tái),如果是管理員用戶則執(zhí)行步驟4,如果是一般用戶則執(zhí)行步驟5 ;
步驟4.進(jìn)入管理員面板,具有以下功能:修改權(quán)限、監(jiān)控、調(diào)度、節(jié)點(diǎn)遷移。完成管理操作后退出管理員面板,執(zhí)行步驟5 ;
步驟5.進(jìn)入僅有使用功能的普通用戶面板,如果選擇發(fā)布數(shù)據(jù)挖掘任務(wù)則執(zhí)行步驟6,如果選擇進(jìn)行日常工作申請(qǐng)PC虛擬機(jī)則執(zhí)行步驟8 ;
步驟6.用戶上傳需要處理的數(shù)據(jù)集及算法,選擇所需的計(jì)算和存儲(chǔ)資源,設(shè)定任務(wù)優(yōu)先級(jí),然后將任務(wù)發(fā)布到平臺(tái)上并執(zhí)行步驟7 ;
步驟7.平臺(tái)先啟動(dòng)一個(gè)主管理節(jié)點(diǎn),然后將根據(jù)需求啟動(dòng)相應(yīng)數(shù)目的子計(jì)算節(jié)點(diǎn),并將這些節(jié)點(diǎn)在主管理節(jié)點(diǎn)上注冊(cè),隨后該任務(wù)發(fā)送到主管理節(jié)點(diǎn)上,由該節(jié)點(diǎn)將任務(wù)分配到各個(gè)子計(jì)算節(jié)點(diǎn)上執(zhí)行。任務(wù)發(fā)布完成之后,用戶如需繼續(xù)進(jìn)行日常工作則執(zhí)行步驟8,否則退出平臺(tái)等待任務(wù)處理完畢。任務(wù)處理完成后,計(jì)算結(jié)果以及任務(wù)詳細(xì)信息將會(huì)返回到平臺(tái)內(nèi)的發(fā)布任務(wù)的用戶的用戶面板上以供用戶查詢;
步驟8.由平臺(tái)查詢?cè)撚脩羰欠裼袀浞葭R像快照,如果有則將該快照啟動(dòng)并恢復(fù)用戶數(shù)據(jù),如果沒(méi)有則按照用戶需求選擇一個(gè)模板鏡像啟動(dòng),用戶通過(guò)遠(yuǎn)程桌面連接該虛擬機(jī)進(jìn)行日常使用;
有益效果:本發(fā)明提出了一種彈性的云數(shù)據(jù)挖掘平臺(tái),較普通的hadoop部署方式而言,該方案的主要優(yōu)勢(shì)在于:
一、可以自由部署一個(gè)或多個(gè)hadoop集群并且不影響物理機(jī)用戶的正常使用,尤其適用于機(jī)器數(shù)量有限的中小型集群。
[0014]二、在面對(duì)cpu,帶寬,內(nèi)存,磁盤以及時(shí)間的不同需求時(shí),可以靈活進(jìn)行資源分配。這里不僅僅是指hadoop內(nèi)部各節(jié)點(diǎn)之間的負(fù)載均衡,還包括與普通用戶正常使用需求之間的協(xié)調(diào),是整個(gè)集群內(nèi)的負(fù)載均衡。
[0015]三、部署更加方便,失效節(jié)點(diǎn)可以快速遷移使得節(jié)點(diǎn)有效性提高。
[0016]四、reduce傳輸數(shù)據(jù)會(huì)盡量在一臺(tái)計(jì)算機(jī)上的多個(gè)虛擬機(jī)節(jié)點(diǎn)中進(jìn)行,而不是傳統(tǒng)的分散在各個(gè)節(jié)點(diǎn)中進(jìn)行。這樣只占用硬盤讀寫速度,而不是占用網(wǎng)絡(luò)帶寬,減小了集群網(wǎng)絡(luò)壓力,提升了效率。
[0017]五、具有跨平臺(tái)性,同時(shí)兼顧Iinux上的數(shù)據(jù)挖掘平臺(tái)和windows上的用戶日常使用。在某些特殊情況下甚至可以借助vmware來(lái)在windows平臺(tái)上拓展集群規(guī)模。
[0018]六、降低了門檻和學(xué)習(xí)成本,短時(shí)間之內(nèi)就可以部署完成并掌握如何使用。
[0019]
【專利附圖】
【附圖說(shuō)明】
[0020]圖1平臺(tái)使用流程圖。
[0021]圖2平臺(tái)架構(gòu)圖。
[0022]
【具體實(shí)施方式】
[0023]物理機(jī)上統(tǒng)一使用Iinux系統(tǒng),然后在整個(gè)集群內(nèi)搭建一個(gè)IaaS系統(tǒng),選用openstack作為基礎(chǔ)來(lái)改進(jìn)。將平臺(tái)所需的交互界面整合在openstack本身的⑶I組件Horizon 中。
[0024]管理員面板所提供的功能如下:添加刪除普通用戶、修改用戶可用資源上限、整個(gè)集群運(yùn)行情況的實(shí)時(shí)監(jiān)控(各物理機(jī)資源的使用情況,節(jié)點(diǎn)分布情況,各節(jié)點(diǎn)建的邏輯關(guān)系,平臺(tái)上正在處理和等待處理的數(shù)據(jù)挖掘任務(wù))、修改各個(gè)任務(wù)的優(yōu)先級(jí)、失效節(jié)點(diǎn)的動(dòng)態(tài)遷移、添加和移除節(jié)點(diǎn)、在不需要時(shí)終止集群。
[0025]用戶的日常使用將在虛擬機(jī)上完成,當(dāng)用戶申請(qǐng)PC機(jī)時(shí)(通常為windows),由平臺(tái)查詢?cè)撚脩羰欠裼袀浞葭R像快照,如果有則將該快照啟動(dòng)并恢復(fù)用戶數(shù)據(jù),如果沒(méi)有則按照用戶的CPU、內(nèi)存、硬盤需求選擇一個(gè)模板鏡像啟動(dòng)。用戶可通過(guò)遠(yuǎn)程桌面連接該虛擬機(jī)進(jìn)行日常使用,集群內(nèi)部對(duì)用戶透明。對(duì)用戶而言,使用的依舊是一樣的物理設(shè)備,并不會(huì)對(duì)日常工作帶來(lái)影響。
[0026]Hadoop原子節(jié)點(diǎn)的鏡像可以根據(jù)自己的需求定制,也可以使用標(biāo)準(zhǔn)鏡像。平臺(tái)初始化時(shí),會(huì)先生成一個(gè)NameNode和一個(gè)secondary NameNode。當(dāng)有任務(wù)時(shí),根據(jù)用戶需求釋放相應(yīng)的DataNode節(jié)點(diǎn)并在NameNode上注冊(cè)。通過(guò)在capacity-scheduler.xml和mapred-queue-acls.xml中修改相應(yīng)函數(shù)增加一個(gè)可以宏觀調(diào)控任務(wù)權(quán)限的api接口。
[0027]發(fā)布任務(wù)的用戶可以定義集群配置,包括集群的大小和拓?fù)洌⑶以O(shè)置不同的Hadoop參數(shù);選擇作業(yè)的類型:pig、hive、jar-file等等;提供作業(yè)腳本源或者是jar路徑;選擇輸入和輸出數(shù)據(jù)路徑;為日志選擇路徑;執(zhí)行作業(yè)。所有集群配置和作業(yè)執(zhí)行都會(huì)清楚的呈現(xiàn)給用戶,作業(yè)結(jié)束后會(huì)自動(dòng)取回計(jì)算結(jié)果。
[0028]修改nova-api內(nèi)的函數(shù),將普通PC虛擬機(jī)和節(jié)點(diǎn)虛擬機(jī)區(qū)分開(kāi)來(lái)調(diào)控,當(dāng)計(jì)算任務(wù)較多時(shí),以節(jié)點(diǎn)虛擬機(jī)為主,當(dāng)用戶較多時(shí),以普通PC虛擬機(jī)為主。當(dāng)NameNode失效時(shí),切換到secondary NameNode同時(shí)將NameNode節(jié)點(diǎn)遷移到其他物理機(jī)上重啟,這樣可以保證平臺(tái)的持續(xù)運(yùn)行。當(dāng)DataNode失效時(shí),刪除該節(jié)點(diǎn),重新啟動(dòng)一個(gè)DataNode節(jié)點(diǎn)。因?yàn)镠adoop本身已經(jīng)具有較高的容錯(cuò)性,會(huì)將失效的DataNode上的計(jì)算任務(wù)轉(zhuǎn)移到其他DataNode上,所以不必回復(fù)失效的DataNode,只需要重新啟動(dòng)一個(gè)保持集群規(guī)模即可。
[0029]修改JobTracker上的調(diào)度算法,在reduce階段讀取IaaS平臺(tái)上的數(shù)據(jù),盡量在一臺(tái)計(jì)算機(jī)上的多個(gè)虛擬機(jī)節(jié)點(diǎn)中進(jìn)行,這樣大部分reduce工作只占用硬盤讀寫速度。
【權(quán)利要求】
1.一種彈性的云數(shù)據(jù)挖掘平臺(tái)部署方法,其特征在于,在不影響正常工作的前提下搭建一個(gè)既能提供日常使用又能提供數(shù)據(jù)挖掘功能的集群,其步驟主要如下: 步驟1.在整個(gè)物理機(jī)集群上建立一個(gè)可以提供各類虛擬機(jī)的虛擬化平臺(tái); 步驟2.為集群使用人員創(chuàng)建各自的賬戶并分配權(quán)限,給一般用戶分配申請(qǐng)PC虛擬機(jī)和發(fā)布數(shù)據(jù)挖掘任務(wù)的權(quán)限,只能進(jìn)入僅有使用功能的普通用戶面板,給管理人員分配一般用戶的所有權(quán)限以及管理整個(gè)集群的權(quán)限,能進(jìn)入管理員面板進(jìn)行各項(xiàng)管理; 步驟3.用戶通過(guò)Web交互頁(yè)面登陸平臺(tái),如果是管理員用戶則執(zhí)行步驟4,如果是一般用戶則執(zhí)行步驟5 ; 步驟4.進(jìn)入管理員面板,具有以下功能:修改權(quán)限、監(jiān)控、調(diào)度、節(jié)點(diǎn)遷移;完成管理操作后退出管理員面板,執(zhí)行步驟5 ; 步驟5.進(jìn)入僅有使用功能的普通用戶面板,如果選擇發(fā)布數(shù)據(jù)挖掘任務(wù)則執(zhí)行步驟6,如果選擇進(jìn)行日常工作申請(qǐng)PC虛擬機(jī)則執(zhí)行步驟8 ; 步驟6.用戶上傳需要處理的數(shù)據(jù)集及算法,選擇所需的計(jì)算和存儲(chǔ)資源,設(shè)定任務(wù)優(yōu)先級(jí),然后將任務(wù)發(fā)布到平臺(tái)上并執(zhí)行步驟7 ; 步驟7.平臺(tái)先啟動(dòng)一個(gè)主管理節(jié)點(diǎn),然后將根據(jù)需求啟動(dòng)相應(yīng)數(shù)目的子計(jì)算節(jié)點(diǎn),并將這些節(jié)點(diǎn)在主管理節(jié)點(diǎn)上注冊(cè),隨后該任務(wù)發(fā)送到主管理節(jié)點(diǎn)上,由該節(jié)點(diǎn)將任務(wù)分配到各個(gè)子計(jì)算節(jié)點(diǎn)上執(zhí)行,任務(wù)發(fā)布完成之后,用戶如需繼續(xù)進(jìn)行日常工作則執(zhí)行步驟8,否則退出平臺(tái)等待任務(wù)處理完畢;任務(wù)處理完成后,計(jì)算結(jié)果以及任務(wù)詳細(xì)信息將會(huì)返回到平臺(tái)內(nèi)的發(fā)布任務(wù)的用戶的用戶面板上以供用戶查詢; 步驟8.由平臺(tái)查詢?cè)撚脩羰欠裼袀浞葭R像快照,如果有則將該快照啟動(dòng)并恢復(fù)用戶數(shù)據(jù),如果沒(méi)有則按照用戶需求選擇一個(gè)模板鏡像啟動(dòng),用戶通過(guò)遠(yuǎn)程桌面連接該虛擬機(jī)進(jìn)行日常使用。
【文檔編號(hào)】H04L29/08GK103561061SQ201310489309
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年10月17日 優(yōu)先權(quán)日:2013年10月17日
【發(fā)明者】張琳, 邵天昊, 王汝傳, 韓志杰, 付雄, 季一木 申請(qǐng)人:南京郵電大學(xué)