一種基于OpenStack的提供Hadoop服務(wù)的方法
【專利摘要】本發(fā)明提供一種基于OpenStack的提供Hadoop服務(wù)的方法,首先搭建基于OpenStack的云平臺,并另外架設(shè)一個系統(tǒng)控制節(jié)點,當(dāng)用戶需要服務(wù)時,可以選擇云平臺中預(yù)裝的計算環(huán)境及特定的配置,發(fā)送請求給系統(tǒng)控制節(jié)點,利用云平臺虛擬化技術(shù),架設(shè)虛擬主機,啟動已經(jīng)安裝Hadoop的系統(tǒng)鏡像,通過系統(tǒng)控制節(jié)點發(fā)送命令,上傳配置文件,啟動Hadoop服務(wù),通過云平臺內(nèi)部網(wǎng)絡(luò)交互消息,完成Hadoop平臺的啟動,隨后即可提供Hadoop的存儲和計算服務(wù)。本發(fā)明利用云計算虛擬化的特點,提供靈活便捷,安全快速的Hadoop服務(wù)。
【專利說明】-種基于OpenStack的提供Hadoop服務(wù)的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及基于云平臺的分布式計算系統(tǒng),尤其是一種基于基于OpenStack的提 供Hadoop服務(wù)的方法。
【背景技術(shù)】
[0002] Hadoop是一個非常流行的分布式平臺,提供分布式存儲和計算的服務(wù)(以下 Hadoop的分布式存儲和計算服務(wù)簡稱為Hadoop服務(wù)),MapReduce是Hadoop分布式計算平 臺的并行化編程模型,可以運行在海量PC計算機節(jié)點上,組成分布式計算集群,但是這種 方式缺乏靈活性及安全性,這時,云平臺就成了最佳的選擇:將Hadoop服務(wù)部署在云平臺 上,集成為一個便捷安全的系統(tǒng)。
[0003] 目前,有一項新的技術(shù)可以實現(xiàn)在云平臺提供Hadoop服務(wù),亞馬遜Hadoop托管服 務(wù)運行架構(gòu)(Amazon Elastic MapReduce,以下簡稱EMR)。EMR提供易用,易擴(kuò)展的Hadoop 服務(wù)。但是,EMR將部分服務(wù)封裝過度,降低了用戶的可用性和服務(wù)的重用度,造成資源浪 費,靈活度低。因此有著用戶可控參數(shù)過少,無法獲取計算服務(wù)日志,每次運行都要手動設(shè) 置配置文件等諸多弊端。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中存在的不足,提供一種基于OpenStack的提供 Hadoop服務(wù)的方法,是一種將Hadoop運行在云平臺的方法,其利用云計算虛擬化的特點, 提供靈活便捷,安全快速的Hadoop服務(wù)。本發(fā)明采用的技術(shù)方案是 : 一種基于OpenStack的提供Hadoop服務(wù)的方法,包括下述步驟: 首先搭建基于OpenStack的云平臺,提供IaaS的服務(wù),并另外架設(shè)一個系統(tǒng)控制節(jié) 占. 其次進(jìn)行下述步驟: 51. 系統(tǒng)控制節(jié)點接受用戶輸入,記錄用戶需求; 52. 系統(tǒng)控制節(jié)點向云平臺發(fā)送請求,按照用戶需求申請?zhí)摂M機資源,云平臺創(chuàng)建預(yù)裝 好Hadoop環(huán)境的虛擬機集群; 53. 為虛擬機集群中的主節(jié)點分配公網(wǎng)IP地址; 54. 系統(tǒng)控制節(jié)點創(chuàng)建配置文件目錄,并生成Hadoop啟動時所需要的配置文件; 55. 系統(tǒng)控制節(jié)點將守護(hù)程序上傳到虛擬機集群主節(jié)點上; 56. 系統(tǒng)控制節(jié)點將步驟4中設(shè)置好的配置文件目錄上傳到主節(jié)點中,用來啟動 Hadoop 服務(wù); 57. 主節(jié)點啟動步驟5中收到的守護(hù)程序,用來和系統(tǒng)控制節(jié)點交互; 58. 主節(jié)點中的守護(hù)程序開始接收命令: 當(dāng)命令為創(chuàng)建Hadoop集群時:進(jìn)入步驟S9 ;當(dāng)命令為運行作業(yè)時:進(jìn)入步驟S10 ; 59. 創(chuàng)建Hadoop集群,包括: S9-1.虛擬機集群根據(jù)步驟6中收到的配置文件,啟動Hadoop服務(wù); S9-2.主節(jié)點根據(jù)配置文件,尋找從節(jié)點并同步配置,建立Hadoop集群; S9-3.虛擬機集群對Hadoop服務(wù)所依賴的HDFS分布式文件系統(tǒng)進(jìn)行格式化; S9-4.完成啟動; S10.運行命令所對應(yīng)的作業(yè)。
[0005] 進(jìn)一步地,步驟S4中,還包括系統(tǒng)控制節(jié)點根據(jù)用戶的輸入來修改配置文件的步 驟。
[0006] 進(jìn)一步地,步驟S10具體包括: S10-1.啟動 Hadoop 服務(wù); S10-2.搭建一個用于讀寫Swift數(shù)據(jù)的中間層,用于對Swift文件系統(tǒng)的讀寫; S10-3.在Swift節(jié)點中讀取計算所需的數(shù)據(jù)文件,和用戶所需的算法,分配給各個節(jié) 點,開始命令所對應(yīng)的計算作業(yè); S10-4.將計算結(jié)果保存,并返回系統(tǒng)控制節(jié)點。
[0007] 本發(fā)明的優(yōu)點在于:本方法采用基于云的方式來提供Hadoop服務(wù),將Hadoop集群 搭建在云平臺虛擬出的計算節(jié)點上,用戶可以按需設(shè)置啟動節(jié)點數(shù),CPU,內(nèi)存,存儲空間等 參數(shù),并且擁有臨時添加或刪除節(jié)點的功能。相比于在物理集群搭建Hadoop服務(wù),基于云 的Hadoop服務(wù),更加便捷靈活,用戶按需選擇計算環(huán)境,無需再進(jìn)行繁瑣的配置,無需改變 物理集群架構(gòu),就可以方便的控制Hadoop集群;另一方面,基于物理集群的Hadoop服務(wù)無 法對多用戶的文件進(jìn)行有效控制,容易產(chǎn)生安全隱患,而基于云的Hadoop服務(wù),利用虛擬 技術(shù)對于文件良好的隔離,保證了用戶間文件的私密性,消除了非法訪問的隱患,提高了系 統(tǒng)的安全性??傮w來說,提高了服務(wù)的可重用性,擴(kuò)展性強,靈活度高,安全性強。。
【專利附圖】
【附圖說明】
[0008] 圖1為本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖。
[0009] 圖2為本發(fā)明的流程圖。
【具體實施方式】
[0010] 下面結(jié)合具體附圖和實施例對本發(fā)明作進(jìn)一步說明。
[0011] 如圖1、圖2所示: 本發(fā)明所提出的一種基于OpenStack的提供Hadoop服務(wù)的方法,首先搭建基于 OpenStack的云平臺,并另外架設(shè)一個系統(tǒng)控制節(jié)點,當(dāng)用戶需要服務(wù)時,可以選擇云平臺 中預(yù)裝的計算環(huán)境及特定的配置,發(fā)送請求給系統(tǒng)控制節(jié)點,利用云平臺虛擬化技術(shù),架設(shè) 虛擬主機,啟動已經(jīng)安裝Hadoop的系統(tǒng)鏡像,通過系統(tǒng)控制節(jié)點發(fā)送命令,上傳配置文件, 啟動Hadoop服務(wù),通過云平臺內(nèi)部網(wǎng)絡(luò)交互消息,完成Hadoop平臺的啟動,隨后即可提供 Hadoop的存儲和計算服務(wù)。
[0012] OpenStack是由Rackspace和NASA(美國國家航空航天局)共同開發(fā)的云 計算平臺,幫助服務(wù)商和企業(yè)內(nèi)部實現(xiàn)類似于Amazon EC2和S3的云基礎(chǔ)架構(gòu)服務(wù) (Infrastructure as a Service, IaaS)〇
[0013] 如圖1所示,本系統(tǒng)物理架構(gòu)主要包括兩部分: 系統(tǒng)控制節(jié)點:負(fù)責(zé)接收用戶輸入,發(fā)送控制命令給云平臺以及結(jié)果的輸出。
[0014] 云平臺物理集群:物理服務(wù)器集群上搭建基于Openstack的云平臺,提供IaaS的 服務(wù),再在其上自動構(gòu)建Hadoop集群,提供Hadoop服務(wù)。
[0015] 為了能夠使Hadoop集群更加靈活,易于擴(kuò)展,提高多用戶情況下的安全性,本發(fā) 明采用基于云的方法來搭建Hadoop集群,依托云平臺的虛擬技術(shù),在其虛擬出的計算節(jié)點 上,構(gòu)建Hadoop的集群。
[0016] 系統(tǒng)控制節(jié)點是整個系統(tǒng)的控制中心,負(fù)責(zé)接受用戶請求,并將請求識別,根據(jù)用 戶的請求,來向云平臺發(fā)送指令,進(jìn)一步通過云平臺控制虛擬節(jié)點,以構(gòu)建Hadoop集群或 者進(jìn)行1?效的計算。
[0017] 云平臺就架設(shè)在物理計算機集群上,由于云平臺的需要,計算機集群被分為四類 節(jié)點:keystone、Nova、Glance以及Swift。Keystone節(jié)點負(fù)責(zé)密鑰驗證,Nova節(jié)點是計算 節(jié)點,為云組織的控制器,它提供一個工具來部署云,包括運行實例、管理網(wǎng)絡(luò)以及控制用 戶等等,Glance節(jié)點提供虛擬機鏡像的發(fā)現(xiàn),注冊,取得服務(wù),而Swift節(jié)點是一個可擴(kuò) 展的對象存儲系統(tǒng)。
[0018] 如圖2所示,以完成用戶啟動MapReduce計算服務(wù)為例示范系統(tǒng)工作流程,包括如 下步驟: S1.系統(tǒng)控制節(jié)點接受用戶輸入,記錄用戶需求,包括節(jié)點個數(shù),CPU,內(nèi)存,存儲空間, 系統(tǒng)環(huán)境,Hadoop的詳細(xì)配置參數(shù)等。
[0019] S2.系統(tǒng)控制節(jié)點向云平臺發(fā)送請求,按照用戶需求申請?zhí)摂M機資源,云平臺創(chuàng)建 預(yù)裝好Hadoop環(huán)境的虛擬機集群。
[0020] S3.為虛擬機集群中的主節(jié)點分配公網(wǎng)IP地址,以方便云平臺之外的系統(tǒng)控制節(jié) 點直接訪問主節(jié)點。
[0021] S4.系統(tǒng)控制節(jié)點創(chuàng)建配置文件目錄,并生成Hadoop啟動時所需要的配置文件, 并根據(jù)用戶的輸入來修改配置文件。
[0022] S5.系統(tǒng)控制節(jié)點中保存著一個守護(hù)程序,這個程序需要放在虛擬機的主節(jié)點中 運行,它負(fù)責(zé)從系統(tǒng)控制節(jié)點中接收指令,如啟動Hadoop服務(wù),開始MapReduce計算等等, 這時,系統(tǒng)控制節(jié)點會將守護(hù)程序上傳到虛擬機集群主節(jié)點上。
[0023] S6.系統(tǒng)控制節(jié)點將步驟4中設(shè)置好的配置文件目錄上傳到主節(jié)點中,用來啟動 Hadoop 服務(wù)。
[0024] S7.主節(jié)點啟動步驟5中收到的守護(hù)程序,用來和系統(tǒng)控制節(jié)點交互。比如可以接 收系統(tǒng)控制節(jié)點的命令。
[0025] S8.主節(jié)點中的守護(hù)程序開始接收命令: 當(dāng)命令為創(chuàng)建Hadoop集群時:進(jìn)入步驟S9 ;當(dāng)命令為運行作業(yè)時:進(jìn)入步驟S10 ; S9.創(chuàng)建Hadoop集群,包括: S9-1.虛擬機集群根據(jù)步驟6中收到的配置文件,啟動Hadoop服務(wù)。
[0026] S9-2.主節(jié)點根據(jù)配置文件,尋找從節(jié)點并同步配置,包括NameNode,DataNode, Jobtracker,Tasktracker,建立 Hadoop 集群。namenode 是負(fù)責(zé)存儲的主節(jié)點 datanode 是 負(fù)責(zé)存儲的從節(jié)點。jobtracker是負(fù)責(zé)計算的主節(jié)點tasktracker是負(fù)責(zé)計算的從節(jié)點。 主節(jié)點namenode和jobtracker分別尋找從節(jié)點datanode和tasktracker,然后同步配 置。
[0027] S9-3.虛擬機集群對Hadoop服務(wù)所依賴的HDFS (Hadoop分布式文件系統(tǒng))進(jìn)行格 式化。
[0028] S9-4.完成啟動。
[0029] S10.運行 MapReduce 作業(yè),包括: S10-1.啟動 Hadoop 服務(wù)。
[0030] S10-2.由于系統(tǒng)中的大量數(shù)據(jù)存儲在云平臺中的存儲節(jié)點Swift中,而 MapReduce只支持訪問HDFS格式的文件系統(tǒng),這時,搭建一個用于讀寫Swift數(shù)據(jù)的中間 層,用于對Swift文件系統(tǒng)的讀寫。
[0031] S10-3.在Swift節(jié)點中讀取計算所需的數(shù)據(jù)文件,和用戶所需的算法,分配給各 個節(jié)點,開始MapReduce計算。
[0032] S10-4.將計算結(jié)果保存,并返回系統(tǒng)控制節(jié)點,最終展示給用戶。
[0033] S10-5計算完畢。
【權(quán)利要求】
1. 一種基于OpenStack的提供Hadoop服務(wù)的方法,其特征在于,包括下述步驟: 首先搭建基于OpenStack的云平臺,提供IaaS的服務(wù),并另外架設(shè)一個系統(tǒng)控制節(jié) 占. 其次進(jìn)行下述步驟:
51. 系統(tǒng)控制節(jié)點接受用戶輸入,記錄用戶需求;
52. 系統(tǒng)控制節(jié)點向云平臺發(fā)送請求,按照用戶需求申請?zhí)摂M機資源,云平臺創(chuàng)建預(yù)裝 好Hadoop環(huán)境的虛擬機集群;
53. 為虛擬機集群中的主節(jié)點分配公網(wǎng)IP地址;
54. 系統(tǒng)控制節(jié)點創(chuàng)建配置文件目錄,并生成Hadoop啟動時所需要的配置文件;
55. 系統(tǒng)控制節(jié)點將守護(hù)程序上傳到虛擬機集群主節(jié)點上;
56. 系統(tǒng)控制節(jié)點將步驟4中設(shè)置好的配置文件目錄上傳到主節(jié)點中,用來啟動 Hadoop 服務(wù);
57. 主節(jié)點啟動步驟5中收到的守護(hù)程序,用來和系統(tǒng)控制節(jié)點交互;
58. 主節(jié)點中的守護(hù)程序開始接收命令: 當(dāng)命令為創(chuàng)建Hadoop集群時:進(jìn)入步驟S9 ;當(dāng)命令為運行作業(yè)時:進(jìn)入步驟S10 ;
59. 創(chuàng)建Hadoop集群,包括: S9-1.虛擬機集群根據(jù)步驟6中收到的配置文件,啟動Hadoop服務(wù); S9-2.主節(jié)點根據(jù)配置文件,尋找從節(jié)點并同步配置,建立Hadoop集群; S9-3.虛擬機集群對Hadoop服務(wù)所依賴的HDFS分布式文件系統(tǒng)進(jìn)行格式化; S9-4.完成啟動; S10.運行命令所對應(yīng)的作業(yè)。
2. 如權(quán)利要求1所述的基于OpenStack的提供Hadoop服務(wù)的方法,其特征在于: 步驟S4中,還包括系統(tǒng)控制節(jié)點根據(jù)用戶的輸入來修改配置文件的步驟。
3. 如權(quán)利要求1所述的基于OpenStack的提供Hadoop服務(wù)的方法,其特征在于: 步驟S10具體包括: S10-1.啟動 Hadoop 服務(wù); S10-2.搭建一個用于讀寫Swift數(shù)據(jù)的中間層,用于對Swift文件系統(tǒng)的讀寫; S10-3.在Swift節(jié)點中讀取計算所需的數(shù)據(jù)文件,和用戶所需的算法,分配給各個節(jié) 點,開始命令所對應(yīng)的計算作業(yè); S10-4.將計算結(jié)果保存,并返回系統(tǒng)控制節(jié)點。
4. 如權(quán)利要求3所述的基于OpenStack的提供Hadoop服務(wù)的方法,其特征在于: 步驟S10運行的是MapReduce作業(yè)。
【文檔編號】H04L29/08GK104065716SQ201410274010
【公開日】2014年9月24日 申請日期:2014年6月18日 優(yōu)先權(quán)日:2014年6月18日
【發(fā)明者】田佳琦, 陳曙東, 褚振 申請人:江蘇物聯(lián)網(wǎng)研究發(fā)展中心