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